diff --git a/.bazelversion b/.bazelversion index f7ee06693c17..3b74042132a6 100644 --- a/.bazelversion +++ b/.bazelversion @@ -1 +1 @@ -9.0.0 +9.3.1 diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 30cb9833a6a4..ba6cb914193f 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -4,16 +4,22 @@ updates: directory: "ruby" schedule: interval: "daily" + cooldown: + default-days: 7 - package-ecosystem: "cargo" directory: "ql" schedule: interval: "daily" + cooldown: + default-days: 7 - package-ecosystem: "github-actions" directory: "/" schedule: interval: "daily" + cooldown: + default-days: 7 ignore: - dependency-name: '*' update-types: ['version-update:semver-patch', 'version-update:semver-minor'] @@ -22,6 +28,8 @@ updates: directory: "go/extractor" schedule: interval: "daily" + cooldown: + default-days: 7 allow: - dependency-name: "golang.org/x/mod" - dependency-name: "golang.org/x/tools" @@ -36,6 +44,8 @@ updates: directory: "go/ql/test" schedule: interval: "monthly" + cooldown: + default-days: 7 ignore: - dependency-name: "*" reviewers: @@ -45,5 +55,7 @@ updates: directory: "/" schedule: interval: weekly + cooldown: + default-days: 7 exclude-paths: - "misc/bazel/registry/**" diff --git a/.github/skills/bazel/SKILL.md b/.github/skills/bazel/SKILL.md index dc30ce30c57f..af5d1ab82359 100644 --- a/.github/skills/bazel/SKILL.md +++ b/.github/skills/bazel/SKILL.md @@ -81,9 +81,8 @@ the platform string here; use `os.bzl`. [`codeql_platform_select`](../../../misc/bazel/os.bzl) takes one keyword argument per CodeQL platform: `linux64`, `linux_arm64`, `osx64` and `win64`. `otherwise` supplies the value for whichever of those you leave unset; it is **not** -a `//conditions:default`. **There is deliberately no fallback from `linux_arm64` to `linux64`.** If you only care about -the OS, use `os_select`, which gives Linux the same value on both architectures and has a `posix` shorthand for the -shared Linux/macOS value. +a `//conditions:default`. If you only care about the OS, use `os_select`, which gives Linux the same value on both +architectures and has a `posix` shorthand for the shared Linux/macOS value. In a macro (no `ctx`) it returns a `select()`: diff --git a/Cargo.lock b/Cargo.lock index 754dca177d3f..b1b6a340f664 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -88,16 +88,6 @@ version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" -[[package]] -name = "argfile" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99489a733dea0d2930bfa59c243146a8513ce7b0991b9d006647687cc61f53e7" -dependencies = [ - "fs-err", - "os_str_bytes", -] - [[package]] name = "arrayvec" version = "0.7.8" @@ -430,7 +420,6 @@ name = "codeql-rust" version = "0.1.0" dependencies = [ "anyhow", - "argfile", "chalk-ir", "chrono", "clap", @@ -822,15 +811,6 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" -[[package]] -name = "fs-err" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73fde052dbfc920003cfd2c8e2c6e6d4cc7c1091538c3a24226cec0665ab08c0" -dependencies = [ - "autocfg", -] - [[package]] name = "fsevent-sys" version = "4.1.0" @@ -1387,15 +1367,6 @@ version = "11.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" -[[package]] -name = "os_str_bytes" -version = "7.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89284d0c2af7b0eb5e814798aa07265413c8fd72009f7fc82ea25a81fb287ce9" -dependencies = [ - "memchr", -] - [[package]] name = "parking_lot" version = "0.12.5" @@ -3251,6 +3222,7 @@ dependencies = [ "proc-macro2", "quote", "syn 3.0.9", + "yeast-schema", ] [[package]] diff --git a/MODULE.bazel b/MODULE.bazel index 9061e9929a44..5f15c3b075fd 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -17,26 +17,47 @@ local_path_override( bazel_dep(name = "platforms", version = "1.1.0") bazel_dep(name = "rules_cc", version = "0.2.27") bazel_dep(name = "rules_go", version = "0.65.0") -bazel_dep(name = "rules_java", version = "9.6.1") +bazel_dep(name = "rules_java", version = "9.9.0") bazel_dep(name = "rules_pkg", version = "1.2.0") bazel_dep(name = "rules_nodejs", version = "6.7.7") -bazel_dep(name = "rules_python", version = "2.4.5") +bazel_dep(name = "rules_python", version = "2.4.6") bazel_dep(name = "rules_shell", version = "0.8.0") -bazel_dep(name = "bazel_skylib", version = "1.9.0") -bazel_dep(name = "abseil-cpp", version = "20260107.1", repo_name = "absl") -bazel_dep(name = "nlohmann_json", version = "3.12.0.bcr.1", repo_name = "json") +bazel_dep(name = "bazel_skylib", version = "1.9.2") +bazel_dep(name = "abseil-cpp", version = "20260817.0", repo_name = "absl") +bazel_dep(name = "nlohmann_json", version = "3.12.0.bcr.2", repo_name = "json") bazel_dep(name = "fmt", version = "12.1.0-codeql.1") -bazel_dep(name = "rules_kotlin", version = "2.2.2-codeql.1") +bazel_dep(name = "rules_kotlin", version = "2.4.21-codeql.1") bazel_dep(name = "gazelle", version = "0.54.0") bazel_dep(name = "rules_dotnet", version = "0.21.5-codeql.1") -bazel_dep(name = "googletest", version = "1.17.0.bcr.2") -bazel_dep(name = "rules_rust", version = "0.74.0") +bazel_dep(name = "googletest", version = "1.18.0.bcr.1") +bazel_dep(name = "rules_rust", version = "0.75.0") bazel_dep(name = "rules_swift", version = "4.0.0-rc5-codeql.3") -bazel_dep(name = "swift-syntax", version = "603.0.2") -bazel_dep(name = "zstd", version = "1.5.7.bcr.1") +bazel_dep(name = "swift-syntax", version = "604.0.0") +bazel_dep(name = "zstd", version = "1.5.7.bcr.3") bazel_dep(name = "buildifier_prebuilt", version = "10.1.0", dev_dependency = True) +# Pin the compiler to support the Kotlin 1.8 and 1.9 language versions required by older extractors. +kotlin = use_extension("@rules_kotlin//src/main/starlark/core/repositories:bzlmod_setup.bzl", "rules_kotlin_extensions") +kotlin.kotlinc_version( + sha256 = "a623871f1cd9c938946948b70ef9170879f0758043885bbd30c32f024e511714", + version = "2.2.21", +) +use_repo( + kotlin, + "btapi_impl", + "com_github_google_ksp", + "com_github_jetbrains_kotlin", + "com_github_jetbrains_kotlin_git", + "com_github_pinterest_ktlint", + "jarjar", + "kotlin_build_tools_api", + "kotlinx_coroutines_core_jvm", + "kotlinx_serialization_core_jvm", + "kotlinx_serialization_json", + "kotlinx_serialization_json_jvm", +) + # Keep edition and version approximately in sync with internal repo. # the versions there are canonical, the versions here are used for CI in github/codeql, as well as for the vendoring of dependencies. RUST_EDITION = "2024" @@ -106,7 +127,6 @@ use_repo( tree_sitter_extractors_deps, "vendor_ts", "vendor_ts__anyhow-1.0.104", - "vendor_ts__argfile-1.0.0", "vendor_ts__chalk-ir-0.104.0", "vendor_ts__chrono-0.4.45", "vendor_ts__clap-4.6.7", diff --git a/actions/ql/lib/qlpack.yml b/actions/ql/lib/qlpack.yml index 5355f0b7e024..3e209144f22c 100644 --- a/actions/ql/lib/qlpack.yml +++ b/actions/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-all -version: 0.7.1 +version: 0.7.2-dev library: true warnOnImplicitThis: true dependencies: diff --git a/actions/ql/src/qlpack.yml b/actions/ql/src/qlpack.yml index 672537f4ecc0..fd909c917439 100644 --- a/actions/ql/src/qlpack.yml +++ b/actions/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-queries -version: 0.6.39 +version: 0.6.40-dev library: false warnOnImplicitThis: true groups: [actions, queries] diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index 2344034fb40e..9d3f8acde278 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 12.4.0 +version: 12.4.1-dev groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll index 80f296dca483..ee894f95648f 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/ExternalFlow.qll @@ -1088,21 +1088,26 @@ private Type getForwardedConstructorType( Function forwarder, string namespace, string type, boolean subtypes, string name, string signature, string ext, string constructorType ) { - exists(int index | - forwardsModel(namespace, type, subtypes, name, signature, ext, _, constructorType, _, _, _) and - forwarder = interpretElement(namespace, type, subtypes, name, signature, ext) - | - exists(string typeArguments | + forwardsModel(namespace, type, subtypes, name, signature, ext, _, constructorType, _, _, _) and + forwarder = interpretElement(namespace, type, subtypes, name, signature, ext) and + ( + exists(string typeArguments, int index | parseAngles(type, _, typeArguments, "") and constructorType = getAtIndex(typeArguments, index) and result = forwarder.getDeclaringType().getTemplateArgument(index) ) or - exists(string nameArguments | + exists(string nameArguments, int index | parseAngles(name, _, nameArguments, "") and constructorType = getAtIndex(nameArguments, index) and result = forwarder.getTemplateArgument(index) ) + or + exists(TypedefType member | + member = forwarder.getDeclaringType().getAMember() and + member.hasName(constructorType) and + result = member.getUnderlyingType() + ) ) } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImplCommon.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImplCommon.qll index 5a56042612a4..2fdac4649fd7 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImplCommon.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/SsaImplCommon.qll @@ -217,6 +217,16 @@ private module IteratorIndirections { ) } + // A by-value crement result loads the iterator, rather than aliasing its address. + override predicate isAdditionalDereference(Instruction deref, Operand address) { + exists(CallInstruction call | + deref = call and + call.getStaticCallTarget() instanceof Iterator::IteratorCrementMemberOperator and + not call.getResultType() instanceof Cpp::ReferenceType and + address = call.getThisArgumentOperand() + ) + } + override predicate isAdditionalConversionFlow(Operand opFrom, Instruction instrTo) { // This is a bit annoying: Consider the following snippet: // ``` @@ -255,11 +265,11 @@ private module IteratorIndirections { store.getDestinationAddress() = var ) or - // A call to `operator++` or `operator--` is the iterator equivalent version of a - // pointer arithmetic instruction. + // A reference-returning `operator++` or `operator--` preserves the iterator's address. exists(CallInstruction call | instrTo = call and call.getStaticCallTarget() instanceof Iterator::IteratorCrementMemberOperator and + call.getResultType() instanceof Cpp::ReferenceType and opFrom = call.getThisArgumentOperand() ) } diff --git a/cpp/ql/src/Best Practices/Unused Entities/UnusedLocals.ql b/cpp/ql/src/Best Practices/Unused Entities/UnusedLocals.ql index 5239fe5d26ad..6d5948300db1 100644 --- a/cpp/ql/src/Best Practices/Unused Entities/UnusedLocals.ql +++ b/cpp/ql/src/Best Practices/Unused Entities/UnusedLocals.ql @@ -46,6 +46,8 @@ predicate declarationHasSideEffects(Variable v) { ) or v.getType() instanceof TemplateDependentType // may have a constructor/destructor + or + v.getInitializer().getExpr().mayBeImpure() } from LocalVariable v, Function f diff --git a/cpp/ql/src/Best Practices/Unused Entities/UnusedStaticVariables.ql b/cpp/ql/src/Best Practices/Unused Entities/UnusedStaticVariables.ql index dc60d9af92b1..442f75027d82 100644 --- a/cpp/ql/src/Best Practices/Unused Entities/UnusedStaticVariables.ql +++ b/cpp/ql/src/Best Practices/Unused Entities/UnusedStaticVariables.ql @@ -15,11 +15,14 @@ import cpp predicate declarationHasSideEffects(Variable v) { exists(Class c | c = v.getUnspecifiedType() | c.hasConstructor() or c.hasDestructor()) + or + v.getInitializer().getExpr().mayBeImpure() } from Variable v where v.isStatic() and + not v.isCompilerGenerated() and v.hasDefinition() and not v.isConstexpr() and not exists(VariableAccess a | a.getTarget() = v) and diff --git a/cpp/ql/src/Security/CWE/CWE-311/ClearText.qll b/cpp/ql/src/Security/CWE/CWE-311/ClearText.qll new file mode 100644 index 000000000000..32e7f24301ac --- /dev/null +++ b/cpp/ql/src/Security/CWE/CWE-311/ClearText.qll @@ -0,0 +1,37 @@ +private import cpp +private import semmle.code.cpp.dataflow.new.DataFlow + +/** + * Holds if `node` should be a barrier for the CWE-311 queries + * because it is of a non-char integral type. + */ +predicate isBarrier(DataFlow::Node node) { + exists(IntegralType type | + type = node.asCertainDefinition().getUnspecifiedType() and + not type instanceof CharType and + not type instanceof WideCharType and + not type instanceof Char8Type and + not type instanceof Char16Type and + not type instanceof Char32Type + ) +} + +private Expr asExprOrIndirectExpr(DataFlow::Node node, int indirectionIndex) { + indirectionIndex = 0 and + result = node.asExpr() + or + result = node.asIndirectExpr(indirectionIndex) +} + +/** + * Holds if `source` is the relevant `DataFlow::Node` for + * expression `e`. + */ +predicate isSource(DataFlow::Node source, Expr e) { + exists(int indirectionIndex | + e = asExprOrIndirectExpr(source, indirectionIndex) and + if e.getUnspecifiedType() instanceof ReferenceType + then indirectionIndex = 1 + else indirectionIndex = 0 + ) +} diff --git a/cpp/ql/src/Security/CWE/CWE-311/CleartextFileWrite.ql b/cpp/ql/src/Security/CWE/CWE-311/CleartextFileWrite.ql index 17f4b7ae0fdb..83220002e29c 100644 --- a/cpp/ql/src/Security/CWE/CWE-311/CleartextFileWrite.ql +++ b/cpp/ql/src/Security/CWE/CWE-311/CleartextFileWrite.ql @@ -19,6 +19,7 @@ import semmle.code.cpp.ir.dataflow.DataFlow import semmle.code.cpp.valuenumbering.GlobalValueNumbering import semmle.code.cpp.ir.dataflow.TaintTracking import FromSensitiveFlow::PathGraph +import ClearText as ClearText /** * A taint flow configuration for flow from a sensitive expression to a `FileWrite` sink. @@ -28,9 +29,7 @@ module FromSensitiveConfig implements DataFlow::ConfigSig { predicate isSink(DataFlow::Node sink) { isSinkImpl(sink, _, _) } - predicate isBarrier(DataFlow::Node node) { - node.asExpr().getUnspecifiedType() instanceof IntegralType - } + predicate isBarrier = ClearText::isBarrier/1; predicate observeDiffInformedIncrementalMode() { any() } @@ -61,7 +60,7 @@ predicate isSinkImpl(DataFlow::Node sink, FileWrite w, Expr dest) { predicate isSourceImpl(DataFlow::Node source, SensitiveExpr sensitive) { not isFileName(globalValueNumber(sensitive)) and // file names are not passwords - source.asExpr() = sensitive + ClearText::isSource(source, sensitive) } /** diff --git a/cpp/ql/src/Security/CWE/CWE-311/CleartextTransmission.ql b/cpp/ql/src/Security/CWE/CWE-311/CleartextTransmission.ql index 207aec189b2e..1182628cc837 100644 --- a/cpp/ql/src/Security/CWE/CWE-311/CleartextTransmission.ql +++ b/cpp/ql/src/Security/CWE/CWE-311/CleartextTransmission.ql @@ -19,6 +19,7 @@ import semmle.code.cpp.ir.dataflow.TaintTracking import semmle.code.cpp.models.interfaces.FlowSource import semmle.code.cpp.commons.File import FromSensitiveFlow::PathGraph +import ClearText as ClearText class SourceVariable extends Variable { SourceVariable() { @@ -218,12 +219,12 @@ predicate isSinkEncrypt(DataFlow::Node sink, Encrypted enc) { sink.asExpr() = en * function returning sensitive data. */ predicate isSourceImpl(DataFlow::Node source) { - exists(VariableAccess e | - e = source.asExpr() and - e.getTarget() instanceof SourceVariable + exists(Expr e | + e.(VariableAccess).getTarget() instanceof SourceVariable or + e.(FunctionCall).getTarget() instanceof SourceFunction + | + ClearText::isSource(source, e) ) - or - source.asExpr().(FunctionCall).getTarget() instanceof SourceFunction } /** @@ -235,9 +236,7 @@ module FromSensitiveConfig implements DataFlow::ConfigSig { predicate isSink(DataFlow::Node sink) { isSinkSendRecv(sink, _) } - predicate isBarrier(DataFlow::Node node) { - node.asExpr().getUnspecifiedType() instanceof IntegralType - } + predicate isBarrier = ClearText::isBarrier/1; predicate isBarrierIn(DataFlow::Node node) { // As any use of a sensitive variable is a potential source, we need to block flow into @@ -266,9 +265,7 @@ module ToEncryptionConfig implements DataFlow::ConfigSig { predicate isSink(DataFlow::Node sink) { isSinkEncrypt(sink, _) } - predicate isBarrier(DataFlow::Node node) { - node.asExpr().getUnspecifiedType() instanceof IntegralType - } + predicate isBarrier = ClearText::isBarrier/1; predicate isBarrierIn(DataFlow::Node node) { // As any use of a sensitive variable is a potential source, we need to block flow into @@ -291,9 +288,7 @@ module FromEncryptionConfig implements DataFlow::ConfigSig { predicate isSink(DataFlow::Node sink) { FromSensitiveFlow::flowTo(sink) } - predicate isBarrier(DataFlow::Node node) { - node.asExpr().getUnspecifiedType() instanceof IntegralType - } + predicate isBarrier = ClearText::isBarrier/1; predicate observeDiffInformedIncrementalMode() { none() // only used negatively diff --git a/cpp/ql/src/change-notes/2026-10-29-unused-variable-initializers.md b/cpp/ql/src/change-notes/2026-10-29-unused-variable-initializers.md new file mode 100644 index 000000000000..1cc9f421d377 --- /dev/null +++ b/cpp/ql/src/change-notes/2026-10-29-unused-variable-initializers.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The `cpp/unused-local-variable` and `cpp/unused-static-variable` queries no longer report variables whose initializers may have side effects. diff --git a/cpp/ql/src/change-notes/2026-10-30-unused-static-compiler-generated.md b/cpp/ql/src/change-notes/2026-10-30-unused-static-compiler-generated.md new file mode 100644 index 000000000000..4ede33c64a12 --- /dev/null +++ b/cpp/ql/src/change-notes/2026-10-30-unused-static-compiler-generated.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The `cpp/unused-static-variable` query no longer reports compiler-generated variables, such as placeholders for empty function parameter packs. diff --git a/cpp/ql/src/change-notes/2026-11-04-char-types-cwe-311.md b/cpp/ql/src/change-notes/2026-11-04-char-types-cwe-311.md new file mode 100644 index 000000000000..f23f0f3b005e --- /dev/null +++ b/cpp/ql/src/change-notes/2026-11-04-char-types-cwe-311.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The `cpp/cleartext-transmission` and `cpp/cleartext-storage-file` queries now track flow through character types. As a result, these queries may find additional results. \ No newline at end of file diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 6f89d00b24af..0bc1233931a4 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 1.10.0 +version: 1.10.1-dev groups: - cpp - queries diff --git a/cpp/ql/test/include/type_traits.h b/cpp/ql/test/include/type_traits.h index dba04f36cad6..421ae3bd50cc 100644 --- a/cpp/ql/test/include/type_traits.h +++ b/cpp/ql/test/include/type_traits.h @@ -1,9 +1,10 @@ #if !defined(CODEQL_TYPE_TRAITS_H) #define CODEQL_TYPE_TRAITS_H -typedef unsigned long size_t; +using size_t = decltype(sizeof(0)); namespace std { + using size_t = decltype(sizeof(0)); template struct remove_const { typedef T type; }; diff --git a/cpp/ql/test/library-tests/dataflow/external-models/asio_streams.cpp b/cpp/ql/test/library-tests/dataflow/external-models/asio_streams.cpp index c6b46bf54b15..8e6440df98a1 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/asio_streams.cpp +++ b/cpp/ql/test/library-tests/dataflow/external-models/asio_streams.cpp @@ -1,17 +1,10 @@ // --- stub library headers --- -#include "std_string.h" +#include "../taint-tests/stl.h" #define SIZE_MAX 0xFFFFFFFF -namespace std { - class string_view { - public: - string_view(const char* s); - }; -}; - namespace boost { namespace system { class error_code { @@ -150,20 +143,20 @@ void test_resolve_host() { sink(resolver.resolve(host, service, flags)); // $ ir sink(resolver.resolve(host, service, flags, error)); // $ ir - sink(resolver.resolve(host_view, service_view)); // $ ir - sink(resolver.resolve(host_view, service_view, error)); // $ ir - sink(resolver.resolve(host_view, service_view, flags)); // $ ir - sink(resolver.resolve(host_view, service_view, flags, error)); // $ ir + sink(resolver.resolve(host_view, service_view)); // $ MISSING: ir + sink(resolver.resolve(host_view, service_view, error)); // $ MISSING: ir + sink(resolver.resolve(host_view, service_view, flags)); // $ MISSING: ir + sink(resolver.resolve(host_view, service_view, flags, error)); // $ MISSING: ir sink(resolver.resolve(protocol, host, service)); // $ ir sink(resolver.resolve(protocol, host, service, error)); // $ ir sink(resolver.resolve(protocol, host, service, flags)); // $ ir sink(resolver.resolve(protocol, host, service, flags, error)); // $ ir - sink(resolver.resolve(protocol, host_view, service_view)); // $ ir - sink(resolver.resolve(protocol, host_view, service_view, error)); // $ ir - sink(resolver.resolve(protocol, host_view, service_view, flags)); // $ ir - sink(resolver.resolve(protocol, host_view, service_view, flags, error)); // $ ir + sink(resolver.resolve(protocol, host_view, service_view)); // $ MISSING: ir + sink(resolver.resolve(protocol, host_view, service_view, error)); // $ MISSING: ir + sink(resolver.resolve(protocol, host_view, service_view, flags)); // $ MISSING: ir + sink(resolver.resolve(protocol, host_view, service_view, flags, error)); // $ MISSING: ir } void test_resolve_service() { @@ -181,18 +174,18 @@ void test_resolve_service() { sink(resolver.resolve(host, service, flags)); // $ ir sink(resolver.resolve(host, service, flags, error)); // $ ir - sink(resolver.resolve(host_view, service_view)); // $ ir - sink(resolver.resolve(host_view, service_view, error)); // $ ir - sink(resolver.resolve(host_view, service_view, flags)); // $ ir - sink(resolver.resolve(host_view, service_view, flags, error)); // $ ir + sink(resolver.resolve(host_view, service_view)); // $ MISSING: ir + sink(resolver.resolve(host_view, service_view, error)); // $ MISSING: ir + sink(resolver.resolve(host_view, service_view, flags)); // $ MISSING: ir + sink(resolver.resolve(host_view, service_view, flags, error)); // $ MISSING: ir sink(resolver.resolve(protocol, host, service)); // $ ir sink(resolver.resolve(protocol, host, service, error)); // $ ir sink(resolver.resolve(protocol, host, service, flags)); // $ ir sink(resolver.resolve(protocol, host, service, flags, error)); // $ ir - sink(resolver.resolve(protocol, host_view, service_view)); // $ ir - sink(resolver.resolve(protocol, host_view, service_view, error)); // $ ir - sink(resolver.resolve(protocol, host_view, service_view, flags)); // $ ir - sink(resolver.resolve(protocol, host_view, service_view, flags, error)); // $ ir + sink(resolver.resolve(protocol, host_view, service_view)); // $ MISSING: ir + sink(resolver.resolve(protocol, host_view, service_view, error)); // $ MISSING: ir + sink(resolver.resolve(protocol, host_view, service_view, flags)); // $ MISSING: ir + sink(resolver.resolve(protocol, host_view, service_view, flags, error)); // $ MISSING: ir } diff --git a/cpp/ql/test/library-tests/dataflow/external-models/azure.cpp b/cpp/ql/test/library-tests/dataflow/external-models/azure.cpp index 14407a8b5bed..512fbeeb5203 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/azure.cpp +++ b/cpp/ql/test/library-tests/dataflow/external-models/azure.cpp @@ -1,3 +1,4 @@ +#include "../taint-tests/stl.h" using uint16_t = unsigned short; using int64_t = long long; using size_t = unsigned long; @@ -5,51 +6,13 @@ using uint8_t = unsigned char; using int32_t = int; using uint32_t = unsigned int; -namespace std -{ - class string - { - public: - string(); - string(const char *); - ~string(); - }; - - template - class map - { - public: - map(); - ~map(); - - V& operator[](const K& key); - }; - - template - class vector - { - public: - vector(); - ~vector(); - - T& operator[](size_t); - }; - - template - class unique_ptr { - public: - unique_ptr(); - ~unique_ptr(); - - T* get(); - }; -} - namespace Azure { template class Nullable { + T m_value; + public: Nullable(); Nullable(const T); @@ -284,6 +247,9 @@ void test_RawResponse(Azure::Core::Http::RawResponse& resp) { } void test_GetHeader() { + // We instantiate the `std::pair` class since we need the `FieldContent` for + // `std::pair::second` to be present in the test DB. + std::pair(); Azure::Core::Http::Request request(Azure::Core::Http::Get, Azure::Core::Url("http://example.com")); { auto headerValue = request.GetHeader("Content-Type").Value(); @@ -294,4 +260,11 @@ void test_GetHeader() { std::string contentType = headers["Content-Type"]; sink(contentType); // $ ir } +} + +void test_QueryParameters() { + Azure::Core::Http::Request request(Azure::Core::Http::Get, Azure::Core::Url("http://example.com")); + Azure::Core::Url url; + url.SetQueryParameters(request.GetHeaders()); + sink(url.GetQueryParameters()["query"]); // $ ir } \ No newline at end of file diff --git a/cpp/ql/test/library-tests/dataflow/external-models/bslx.cpp b/cpp/ql/test/library-tests/dataflow/external-models/bslx.cpp index 10d1179e4c33..22178f3c3e49 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/bslx.cpp +++ b/cpp/ql/test/library-tests/dataflow/external-models/bslx.cpp @@ -1,20 +1,4 @@ - -// --- stub library headers --- - -namespace std { - typedef unsigned long size_t; - template class allocator {}; - template struct char_traits {}; - template, class Allocator = allocator > - class basic_string { - public: - basic_string(); - basic_string(const charT* s, const Allocator& a = Allocator()); - const charT* data() const; - size_t size() const; - }; - typedef basic_string string; -} +#include "../taint-tests/stl.h" // BDE spells the standard string as `bsl::string`; alias it onto the stub above. namespace bsl { diff --git a/cpp/ql/test/library-tests/dataflow/external-models/flow.expected b/cpp/ql/test/library-tests/dataflow/external-models/flow.expected index 618661341ced..e4d8ca07ccf0 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/flow.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/flow.expected @@ -96,1120 +96,1087 @@ models | 95 | Summary: Azure::Core::IO; BodyStream; true; Read; ; ; Argument[-1]; Argument[*0]; taint; manual | | 96 | Summary: Azure::Core::IO; BodyStream; true; ReadToCount; ; ; Argument[-1]; Argument[*0]; taint; manual | | 97 | Summary: Azure::Core::IO; BodyStream; true; ReadToEnd; ; ; Argument[-1]; ReturnValue.Element; taint; manual | -| 98 | Summary: Azure; Nullable; true; Value; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 99 | Summary: BloombergLP::balber; BerDecoder; true; decode; ; ; Argument[*0]; Argument[*1]; taint; manual | -| 100 | Summary: BloombergLP::balber; BerDecoder; true; decodeAny; ; ; Argument[*0]; Argument[*1]; taint; manual | -| 101 | Summary: BloombergLP::balber; BerEncoder; true; encode; ; ; Argument[*1]; Argument[*0]; taint; manual | -| 102 | Summary: BloombergLP::balber; BerEncoder; true; encodeAny; ; ; Argument[*1]; Argument[*0]; taint; manual | -| 103 | Summary: BloombergLP::baljsn; Decoder; true; decode; ; ; Argument[*0]; Argument[*1]; taint; manual | -| 104 | Summary: BloombergLP::baljsn; Decoder; true; decodeAny; ; ; Argument[*0]; Argument[*1]; taint; manual | -| 105 | Summary: BloombergLP::baljsn; Encoder; true; encode; ; ; Argument[*1]; Argument[*0]; taint; manual | -| 106 | Summary: BloombergLP::baljsn; Encoder; true; encodeAny; ; ; Argument[*1]; Argument[*0]; taint; manual | -| 107 | Summary: BloombergLP::balxml; Decoder; true; decode; (const char *,size_t,TYPE *,const char *); ; Argument[*0]; Argument[*2]; taint; manual | -| 108 | Summary: BloombergLP::balxml; Decoder; true; decode; (istream &,TYPE *,const char *); ; Argument[*0]; Argument[*1]; taint; manual | -| 109 | Summary: BloombergLP::balxml; Decoder; true; decode; (istream &,TYPE *,const char *); ; Argument[*0]; ReturnValue[*]; taint; manual | -| 110 | Summary: BloombergLP::balxml; Decoder; true; decode; (streambuf *,TYPE *,const char *); ; Argument[*0]; Argument[*1]; taint; manual | -| 111 | Summary: BloombergLP::balxml; Decoder; true; decodeAny; (istream &,AnyRef *,const char *); ; Argument[*0]; Argument[*1]; taint; manual | -| 112 | Summary: BloombergLP::balxml; Decoder; true; decodeAny; (istream &,AnyRef *,const char *); ; Argument[*0]; ReturnValue[*]; taint; manual | -| 113 | Summary: BloombergLP::balxml; Decoder; true; decodeAny; (streambuf *,AnyRef *,const char *); ; Argument[*0]; Argument[*1]; taint; manual | -| 114 | Summary: BloombergLP::balxml; Decoder; true; decodeAny; (istream &,TYPE *,const char *); ; Argument[*0]; Argument[*1]; taint; manual | -| 115 | Summary: BloombergLP::balxml; Decoder; true; decodeAny; (istream &,TYPE *,const char *); ; Argument[*0]; ReturnValue[*]; taint; manual | -| 116 | Summary: BloombergLP::balxml; Decoder; true; decodeAny; (streambuf *,TYPE *,const char *); ; Argument[*0]; Argument[*1]; taint; manual | -| 117 | Summary: BloombergLP::balxml; Encoder; true; encode; (ostream &,const TYPE &); ; Argument[*0..1]; ReturnValue[*]; taint; manual | -| 118 | Summary: BloombergLP::balxml; Encoder; true; encode; (ostream &,const TYPE &); ; Argument[*1]; Argument[*0]; taint; manual | -| 119 | Summary: BloombergLP::balxml; Encoder; true; encode; (streambuf *,const TYPE &); ; Argument[*1]; Argument[*0]; taint; manual | -| 120 | Summary: BloombergLP::balxml; Encoder; true; encodeAny; (ostream &,const AnyConstRef &); ; Argument[*0..1]; ReturnValue[*]; taint; manual | -| 121 | Summary: BloombergLP::balxml; Encoder; true; encodeAny; (ostream &,const AnyConstRef &); ; Argument[*1]; Argument[*0]; taint; manual | -| 122 | Summary: BloombergLP::balxml; Encoder; true; encodeAny; (streambuf *,const AnyConstRef &); ; Argument[*1]; Argument[*0]; taint; manual | -| 123 | Summary: BloombergLP::balxml; Encoder; true; encodeAny; (ostream &,const TYPE &); ; Argument[*0..1]; ReturnValue[*]; taint; manual | -| 124 | Summary: BloombergLP::balxml; Encoder; true; encodeAny; (ostream &,const TYPE &); ; Argument[*1]; Argument[*0]; taint; manual | -| 125 | Summary: BloombergLP::balxml; Encoder; true; encodeAny; (streambuf *,const TYPE &); ; Argument[*1]; Argument[*0]; taint; manual | -| 126 | Summary: BloombergLP::balxml; Encoder; true; encodeAnyToStream; ; ; Argument[*1]; Argument[*0]; taint; manual | -| 127 | Summary: BloombergLP::balxml; Encoder; true; encodeToStream; ; ; Argument[*1]; Argument[*0]; taint; manual | -| 128 | Summary: BloombergLP::bdlbb; Blob; true; buffer; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 129 | Summary: BloombergLP::bdlbb; BlobBuffer; true; buffer; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 130 | Summary: BloombergLP::bdlbb; BlobBuffer; true; data; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 131 | Summary: BloombergLP::bdlbb; BlobUtil; true; copy; (Blob *,int,const Blob &,int,int); ; Argument[*2]; Argument[*0]; taint; manual | -| 132 | Summary: BloombergLP::bdlbb; BlobUtil; true; copy; (Blob *,int,const char *,int); ; Argument[*2]; Argument[*0]; taint; manual | -| 133 | Summary: BloombergLP::bdlbb; BlobUtil; true; copy; (char *,const Blob &,int,int); ; Argument[*1]; Argument[*0]; taint; manual | -| 134 | Summary: BloombergLP::bdlbb; BlobUtil; true; getContiguousRangeOrCopy; ; ; Argument[*1]; ReturnValue[*]; taint; manual | -| 135 | Summary: BloombergLP::bmqa; Message; true; clone; ; ; Argument[-1]; ReturnValue; taint; manual | -| 136 | Summary: BloombergLP::bmqa; Message; true; getData; ; ; Argument[-1]; Argument[*0]; taint; manual | -| 137 | Summary: BloombergLP::bmqa; Message; true; loadProperties; ; ; Argument[-1]; Argument[*0]; taint; manual | -| 138 | Summary: BloombergLP::bmqa; Message; true; setData; ; ; Argument[*0]; Argument[-1]; taint; manual | -| 139 | Summary: BloombergLP::bmqa; Message; true; setDataRef; ; ; Argument[*0]; Argument[-1]; taint; manual | -| 140 | Summary: BloombergLP::bmqa; Message; true; setPropertiesRef; ; ; Argument[*0]; Argument[-1]; taint; manual | -| 141 | Summary: BloombergLP::bmqa; MessageEvent; true; messageIterator; ; ; Argument[-1]; ReturnValue; taint; manual | -| 142 | Summary: BloombergLP::bmqa; MessageIterator; true; message; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 143 | Summary: BloombergLP::bmqa; MessageProperties; true; MessageProperties; (const MessageProperties &,Allocator *); ; Argument[*0]; Argument[-1]; value; manual | -| 144 | Summary: BloombergLP::bmqa; MessageProperties; true; getPropertyAsBinary; ; ; Argument[-1]; ReturnValue[*].Element; taint; manual | -| 145 | Summary: BloombergLP::bmqa; MessageProperties; true; getPropertyAsBinaryOr; ; ; Argument[*1].Element[@]; ReturnValue[*].Element[@]; value; manual | -| 146 | Summary: BloombergLP::bmqa; MessageProperties; true; getPropertyAsBinaryOr; ; ; Argument[-1]; ReturnValue[*].Element; taint; manual | -| 147 | Summary: BloombergLP::bmqa; MessageProperties; true; getPropertyAsString; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 148 | Summary: BloombergLP::bmqa; MessageProperties; true; getPropertyAsStringOr; ; ; Argument[*1]; ReturnValue[*]; value; manual | -| 149 | Summary: BloombergLP::bmqa; MessageProperties; true; getPropertyAsStringOr; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 150 | Summary: BloombergLP::bmqa; MessageProperties; true; operator=; ; ; Argument[*0]; Argument[-1]; value; manual | -| 151 | Summary: BloombergLP::bmqa; MessageProperties; true; operator=; ; ; Argument[*0]; ReturnValue[*]; value; manual | -| 152 | Summary: BloombergLP::bmqa; MessageProperties; true; setPropertyAsBinary; ; ; Argument[0]; Argument[-1]; taint; manual | -| 153 | Summary: BloombergLP::bmqa; MessageProperties; true; setPropertyAsBinary; ; ; Argument[1]; Argument[-1]; taint; manual | -| 154 | Summary: BloombergLP::bmqa; MessageProperties; true; setPropertyAsBool; ; ; Argument[0]; Argument[-1]; taint; manual | -| 155 | Summary: BloombergLP::bmqa; MessageProperties; true; setPropertyAsChar; ; ; Argument[0]; Argument[-1]; taint; manual | -| 156 | Summary: BloombergLP::bmqa; MessageProperties; true; setPropertyAsInt32; ; ; Argument[0]; Argument[-1]; taint; manual | -| 157 | Summary: BloombergLP::bmqa; MessageProperties; true; setPropertyAsInt64; ; ; Argument[0]; Argument[-1]; taint; manual | -| 158 | Summary: BloombergLP::bmqa; MessageProperties; true; setPropertyAsShort; ; ; Argument[0]; Argument[-1]; taint; manual | -| 159 | Summary: BloombergLP::bmqa; MessageProperties; true; setPropertyAsString; ; ; Argument[0]; Argument[-1]; taint; manual | -| 160 | Summary: BloombergLP::bmqa; MessageProperties; true; setPropertyAsString; ; ; Argument[1]; Argument[-1]; taint; manual | -| 161 | Summary: BloombergLP::bmqa; MessageProperties; true; streamIn; ; ; Argument[*0]; Argument[-1]; taint; manual | -| 162 | Summary: BloombergLP::bmqa; MessageProperties; true; streamOut; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 163 | Summary: BloombergLP::bmqa; MessagePropertiesIterator; true; MessagePropertiesIterator; ; ; Argument[*0]; Argument[-1]; taint; manual | -| 164 | Summary: BloombergLP::bmqa; MessagePropertiesIterator; true; getAsBinary; ; ; Argument[-1]; ReturnValue[*].Element; taint; manual | -| 165 | Summary: BloombergLP::bmqa; MessagePropertiesIterator; true; getAsString; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 166 | Summary: BloombergLP::bmqa; MessagePropertiesIterator; true; name; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 167 | Summary: BloombergLP::bmqa; MessagePropertiesIterator; true; operator=; ; ; Argument[*0]; Argument[-1]; value; manual | -| 168 | Summary: BloombergLP::bmqa; MessagePropertiesIterator; true; operator=; ; ; Argument[*0]; ReturnValue[*]; value; manual | -| 169 | Summary: BloombergLP::bslx::InStreamFunctions; ; false; bdexStreamIn; ; ; Argument[*0]; Argument[*1]; taint; manual | -| 170 | Summary: BloombergLP::bslx::InStreamFunctions; ; false; bdexStreamIn; ; ; Argument[*0]; ReturnValue[*]; taint; manual | -| 171 | Summary: BloombergLP::bslx; ByteInStream; true; ByteInStream; ; ; Argument[*0]; Argument[-1]; taint; manual | -| 172 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayFloat32; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 173 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayFloat64; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 174 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayInt16; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 175 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayInt24; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 176 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayInt32; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 177 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayInt40; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 178 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayInt48; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 179 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayInt56; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 180 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayInt64; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 181 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayInt8; ; ; Argument[-1]; Argument[*0]; taint; manual | -| 182 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayInt8; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 183 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayUint16; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 184 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayUint24; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 185 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayUint32; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 186 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayUint40; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 187 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayUint48; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 188 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayUint56; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 189 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayUint64; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 190 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayUint8; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 191 | Summary: BloombergLP::bslx; ByteInStream; true; getFloat32; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 192 | Summary: BloombergLP::bslx; ByteInStream; true; getFloat64; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 193 | Summary: BloombergLP::bslx; ByteInStream; true; getInt16; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 194 | Summary: BloombergLP::bslx; ByteInStream; true; getInt24; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 195 | Summary: BloombergLP::bslx; ByteInStream; true; getInt32; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 196 | Summary: BloombergLP::bslx; ByteInStream; true; getInt40; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 197 | Summary: BloombergLP::bslx; ByteInStream; true; getInt48; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 198 | Summary: BloombergLP::bslx; ByteInStream; true; getInt56; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 199 | Summary: BloombergLP::bslx; ByteInStream; true; getInt64; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 200 | Summary: BloombergLP::bslx; ByteInStream; true; getInt8; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 201 | Summary: BloombergLP::bslx; ByteInStream; true; getLength; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 202 | Summary: BloombergLP::bslx; ByteInStream; true; getString; ; ; Argument[-1]; Argument[*0]; taint; manual | -| 203 | Summary: BloombergLP::bslx; ByteInStream; true; getString; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 204 | Summary: BloombergLP::bslx; ByteInStream; true; getUint16; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 205 | Summary: BloombergLP::bslx; ByteInStream; true; getUint24; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 206 | Summary: BloombergLP::bslx; ByteInStream; true; getUint32; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 207 | Summary: BloombergLP::bslx; ByteInStream; true; getUint40; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 208 | Summary: BloombergLP::bslx; ByteInStream; true; getUint48; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 209 | Summary: BloombergLP::bslx; ByteInStream; true; getUint56; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 210 | Summary: BloombergLP::bslx; ByteInStream; true; getUint64; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 211 | Summary: BloombergLP::bslx; ByteInStream; true; getUint8; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 212 | Summary: BloombergLP::bslx; ByteInStream; true; getVersion; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 213 | Summary: BloombergLP::bslx; ByteInStream; true; reset; (const StringRef &); ; Argument[*0]; Argument[-1]; taint; manual | -| 214 | Summary: BloombergLP::bslx; ByteInStream; true; reset; (const char *,size_t); ; Argument[*0]; Argument[-1]; taint; manual | -| 215 | Summary: BloombergLP::bslx; GenericInStream; true; GenericInStream; ; ; Argument[*0]; Argument[-1]; taint; manual | -| 216 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayFloat32; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 217 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayFloat64; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 218 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayInt16; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 219 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayInt24; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 220 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayInt32; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 221 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayInt40; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 222 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayInt48; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 223 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayInt56; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 224 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayInt64; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 225 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayInt8; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 226 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayUint16; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 227 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayUint24; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 228 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayUint32; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 229 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayUint40; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 230 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayUint48; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 231 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayUint56; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 232 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayUint64; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 233 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayUint8; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 234 | Summary: BloombergLP::bslx; GenericInStream; true; getFloat32; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 235 | Summary: BloombergLP::bslx; GenericInStream; true; getFloat64; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 236 | Summary: BloombergLP::bslx; GenericInStream; true; getInt16; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 237 | Summary: BloombergLP::bslx; GenericInStream; true; getInt24; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 238 | Summary: BloombergLP::bslx; GenericInStream; true; getInt32; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 239 | Summary: BloombergLP::bslx; GenericInStream; true; getInt40; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 240 | Summary: BloombergLP::bslx; GenericInStream; true; getInt48; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 241 | Summary: BloombergLP::bslx; GenericInStream; true; getInt56; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 242 | Summary: BloombergLP::bslx; GenericInStream; true; getInt64; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 243 | Summary: BloombergLP::bslx; GenericInStream; true; getInt8; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 244 | Summary: BloombergLP::bslx; GenericInStream; true; getLength; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 245 | Summary: BloombergLP::bslx; GenericInStream; true; getString; ; ; Argument[-1]; Argument[*0]; taint; manual | -| 246 | Summary: BloombergLP::bslx; GenericInStream; true; getString; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 247 | Summary: BloombergLP::bslx; GenericInStream; true; getUint16; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 248 | Summary: BloombergLP::bslx; GenericInStream; true; getUint24; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 249 | Summary: BloombergLP::bslx; GenericInStream; true; getUint32; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 250 | Summary: BloombergLP::bslx; GenericInStream; true; getUint40; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 251 | Summary: BloombergLP::bslx; GenericInStream; true; getUint48; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 252 | Summary: BloombergLP::bslx; GenericInStream; true; getUint56; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 253 | Summary: BloombergLP::bslx; GenericInStream; true; getUint64; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 254 | Summary: BloombergLP::bslx; GenericInStream; true; getUint8; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 255 | Summary: BloombergLP::bslx; GenericInStream; true; getVersion; ; ; Argument[-1]; ReturnValue[*]; taint; manual | -| 256 | Summary: boost::asio::ip; basic_resolver; false; resolve; (const InternetProtocol &,const string &,const string &); ; Argument[*1..2]; ReturnValue; taint; manual | -| 257 | Summary: boost::asio::ip; basic_resolver; false; resolve; (const InternetProtocol &,const string &,const string &,error_code &); ; Argument[*1..2]; ReturnValue; taint; manual | -| 258 | Summary: boost::asio::ip; basic_resolver; false; resolve; (const InternetProtocol &,const string &,const string &,flags); ; Argument[*1..2]; ReturnValue; taint; manual | -| 259 | Summary: boost::asio::ip; basic_resolver; false; resolve; (const InternetProtocol &,const string &,const string &,flags,error_code &); ; Argument[*1..2]; ReturnValue; taint; manual | -| 260 | Summary: boost::asio::ip; basic_resolver; false; resolve; (const InternetProtocol &,string_view,string_view); ; Argument[1..2]; ReturnValue; taint; manual | -| 261 | Summary: boost::asio::ip; basic_resolver; false; resolve; (const InternetProtocol &,string_view,string_view,error_code &); ; Argument[1..2]; ReturnValue; taint; manual | -| 262 | Summary: boost::asio::ip; basic_resolver; false; resolve; (const InternetProtocol &,string_view,string_view,flags); ; Argument[1..2]; ReturnValue; taint; manual | -| 263 | Summary: boost::asio::ip; basic_resolver; false; resolve; (const InternetProtocol &,string_view,string_view,flags,error_code &); ; Argument[1..2]; ReturnValue; taint; manual | -| 264 | Summary: boost::asio::ip; basic_resolver; false; resolve; (const string &,const string &); ; Argument[*0..1]; ReturnValue; taint; manual | -| 265 | Summary: boost::asio::ip; basic_resolver; false; resolve; (const string &,const string &,error_code &); ; Argument[*0..1]; ReturnValue; taint; manual | -| 266 | Summary: boost::asio::ip; basic_resolver; false; resolve; (const string &,const string &,flags); ; Argument[*0..1]; ReturnValue; taint; manual | -| 267 | Summary: boost::asio::ip; basic_resolver; false; resolve; (const string &,const string &,flags,error_code &); ; Argument[*0..1]; ReturnValue; taint; manual | -| 268 | Summary: boost::asio::ip; basic_resolver; false; resolve; (string_view,string_view); ; Argument[0..1]; ReturnValue; taint; manual | -| 269 | Summary: boost::asio::ip; basic_resolver; false; resolve; (string_view,string_view,error_code &); ; Argument[0..1]; ReturnValue; taint; manual | -| 270 | Summary: boost::asio::ip; basic_resolver; false; resolve; (string_view,string_view,flags); ; Argument[0..1]; ReturnValue; taint; manual | -| 271 | Summary: boost::asio::ip; basic_resolver; false; resolve; (string_view,string_view,flags,error_code &); ; Argument[0..1]; ReturnValue; taint; manual | -| 272 | Summary: boost::asio; ; false; buffer; ; ; Argument[*0]; ReturnValue; taint; manual | -| 273 | Summary: bsl; vector; true; data; ; ; Argument[-1].Element[@]; ReturnValue[*@]; value; manual | -| 274 | Summary: bsl; vector; true; operator[]; ; ; Argument[-1].Element[@]; ReturnValue[*@]; value; manual | -| 275 | Summary: bsl; vector; true; push_back; ; ; Argument[*@0]; Argument[-1].Element[@]; value; manual | -| 276 | Summary: google::protobuf; MessageLite; true; AppendPartialToCord; ; ; Argument[-1]; Argument[*0]; taint; manual | -| 277 | Summary: google::protobuf; MessageLite; true; AppendPartialToString; ; ; Argument[-1]; Argument[*0]; taint; manual | -| 278 | Summary: google::protobuf; MessageLite; true; AppendToCord; ; ; Argument[-1]; Argument[*0]; taint; manual | -| 279 | Summary: google::protobuf; MessageLite; true; AppendToString; ; ; Argument[-1]; Argument[*0]; taint; manual | -| 280 | Summary: google::protobuf; MessageLite; true; MergeFromBoundedZeroCopyStream; ; ; Argument[*0]; Argument[-1]; taint; manual | -| 281 | Summary: google::protobuf; MessageLite; true; MergeFromCodedStream; ; ; Argument[*0]; Argument[-1]; taint; manual | -| 282 | Summary: google::protobuf; MessageLite; true; MergeFromCord; ; ; Argument[*0]; Argument[-1]; taint; manual | -| 283 | Summary: google::protobuf; MessageLite; true; MergeFromString; (const Cord &); ; Argument[*0]; Argument[-1]; taint; manual | -| 284 | Summary: google::protobuf; MessageLite; true; MergeFromString; (string_view); ; Argument[0]; Argument[-1]; taint; manual | -| 285 | Summary: google::protobuf; MessageLite; true; MergePartialFromBoundedZeroCopyStream; ; ; Argument[*0]; Argument[-1]; taint; manual | -| 286 | Summary: google::protobuf; MessageLite; true; MergePartialFromCodedStream; ; ; Argument[*0]; Argument[-1]; taint; manual | -| 287 | Summary: google::protobuf; MessageLite; true; MergePartialFromCord; ; ; Argument[*0]; Argument[-1]; taint; manual | -| 288 | Summary: google::protobuf; MessageLite; true; MergePartialFromString; (const Cord &); ; Argument[*0]; Argument[-1]; taint; manual | -| 289 | Summary: google::protobuf; MessageLite; true; MergePartialFromString; (string_view); ; Argument[0]; Argument[-1]; taint; manual | -| 290 | Summary: google::protobuf; MessageLite; true; ParseFromArray; ; ; Argument[*0]; Argument[-1]; taint; manual | -| 291 | Summary: google::protobuf; MessageLite; true; ParseFromBoundedZeroCopyStream; ; ; Argument[*0]; Argument[-1]; taint; manual | -| 292 | Summary: google::protobuf; MessageLite; true; ParseFromCodedStream; ; ; Argument[*0]; Argument[-1]; taint; manual | -| 293 | Summary: google::protobuf; MessageLite; true; ParseFromCord; ; ; Argument[*0]; Argument[-1]; taint; manual | -| 294 | Summary: google::protobuf; MessageLite; true; ParseFromIstream; ; ; Argument[*0]; Argument[-1]; taint; manual | -| 295 | Summary: google::protobuf; MessageLite; true; ParseFromString; (const Cord &); ; Argument[*0]; Argument[-1]; taint; manual | -| 296 | Summary: google::protobuf; MessageLite; true; ParseFromString; (string_view); ; Argument[0]; Argument[-1]; taint; manual | -| 297 | Summary: google::protobuf; MessageLite; true; ParseFromZeroCopyStream; ; ; Argument[*0]; Argument[-1]; taint; manual | -| 298 | Summary: google::protobuf; MessageLite; true; ParsePartialFromArray; ; ; Argument[*0]; Argument[-1]; taint; manual | -| 299 | Summary: google::protobuf; MessageLite; true; ParsePartialFromBoundedZeroCopyStream; ; ; Argument[*0]; Argument[-1]; taint; manual | -| 300 | Summary: google::protobuf; MessageLite; true; ParsePartialFromCodedStream; ; ; Argument[*0]; Argument[-1]; taint; manual | -| 301 | Summary: google::protobuf; MessageLite; true; ParsePartialFromCord; ; ; Argument[*0]; Argument[-1]; taint; manual | -| 302 | Summary: google::protobuf; MessageLite; true; ParsePartialFromIstream; ; ; Argument[*0]; Argument[-1]; taint; manual | -| 303 | Summary: google::protobuf; MessageLite; true; ParsePartialFromString; (const Cord &); ; Argument[*0]; Argument[-1]; taint; manual | -| 304 | Summary: google::protobuf; MessageLite; true; ParsePartialFromString; (string_view); ; Argument[0]; Argument[-1]; taint; manual | -| 305 | Summary: google::protobuf; MessageLite; true; ParsePartialFromZeroCopyStream; ; ; Argument[*0]; Argument[-1]; taint; manual | -| 306 | Summary: google::protobuf; MessageLite; true; SerializeAsCord; ; ; Argument[-1]; ReturnValue; taint; manual | -| 307 | Summary: google::protobuf; MessageLite; true; SerializeAsString; ; ; Argument[-1]; ReturnValue; taint; manual | -| 308 | Summary: google::protobuf; MessageLite; true; SerializePartialAsCord; ; ; Argument[-1]; ReturnValue; taint; manual | -| 309 | Summary: google::protobuf; MessageLite; true; SerializePartialAsString; ; ; Argument[-1]; ReturnValue; taint; manual | -| 310 | Summary: google::protobuf; MessageLite; true; SerializePartialToArray; ; ; Argument[-1]; Argument[*0]; taint; manual | -| 311 | Summary: google::protobuf; MessageLite; true; SerializePartialToCodedStream; ; ; Argument[-1]; Argument[*0]; taint; manual | -| 312 | Summary: google::protobuf; MessageLite; true; SerializePartialToCord; ; ; Argument[-1]; Argument[*0]; taint; manual | -| 313 | Summary: google::protobuf; MessageLite; true; SerializePartialToOstream; ; ; Argument[-1]; Argument[*0]; taint; manual | -| 314 | Summary: google::protobuf; MessageLite; true; SerializePartialToString; ; ; Argument[-1]; Argument[*0]; taint; manual | -| 315 | Summary: google::protobuf; MessageLite; true; SerializePartialToZeroCopyStream; ; ; Argument[-1]; Argument[*0]; taint; manual | -| 316 | Summary: google::protobuf; MessageLite; true; SerializeToArray; ; ; Argument[-1]; Argument[*0]; taint; manual | -| 317 | Summary: google::protobuf; MessageLite; true; SerializeToCodedStream; ; ; Argument[-1]; Argument[*0]; taint; manual | -| 318 | Summary: google::protobuf; MessageLite; true; SerializeToCord; ; ; Argument[-1]; Argument[*0]; taint; manual | -| 319 | Summary: google::protobuf; MessageLite; true; SerializeToOstream; ; ; Argument[-1]; Argument[*0]; taint; manual | -| 320 | Summary: google::protobuf; MessageLite; true; SerializeToString; ; ; Argument[-1]; Argument[*0]; taint; manual | -| 321 | Summary: google::protobuf; MessageLite; true; SerializeToZeroCopyStream; ; ; Argument[-1]; Argument[*0]; taint; manual | +| 98 | Summary: Azure::Core; Url; true; GetQueryParameters; ; ; Argument[-1]; ReturnValue; taint; manual | +| 99 | Summary: Azure::Core; Url; true; SetQueryParameters; ; ; Argument[0]; Argument[-1]; taint; manual | +| 100 | Summary: Azure; Nullable; true; Value; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 101 | Summary: BloombergLP::balber; BerDecoder; true; decode; ; ; Argument[*0]; Argument[*1]; taint; manual | +| 102 | Summary: BloombergLP::balber; BerDecoder; true; decodeAny; ; ; Argument[*0]; Argument[*1]; taint; manual | +| 103 | Summary: BloombergLP::balber; BerEncoder; true; encode; ; ; Argument[*1]; Argument[*0]; taint; manual | +| 104 | Summary: BloombergLP::balber; BerEncoder; true; encodeAny; ; ; Argument[*1]; Argument[*0]; taint; manual | +| 105 | Summary: BloombergLP::baljsn; Decoder; true; decode; ; ; Argument[*0]; Argument[*1]; taint; manual | +| 106 | Summary: BloombergLP::baljsn; Decoder; true; decodeAny; ; ; Argument[*0]; Argument[*1]; taint; manual | +| 107 | Summary: BloombergLP::baljsn; Encoder; true; encode; ; ; Argument[*1]; Argument[*0]; taint; manual | +| 108 | Summary: BloombergLP::baljsn; Encoder; true; encodeAny; ; ; Argument[*1]; Argument[*0]; taint; manual | +| 109 | Summary: BloombergLP::balxml; Decoder; true; decode; (const char *,size_t,TYPE *,const char *); ; Argument[*0]; Argument[*2]; taint; manual | +| 110 | Summary: BloombergLP::balxml; Decoder; true; decode; (istream &,TYPE *,const char *); ; Argument[*0]; Argument[*1]; taint; manual | +| 111 | Summary: BloombergLP::balxml; Decoder; true; decode; (istream &,TYPE *,const char *); ; Argument[*0]; ReturnValue[*]; taint; manual | +| 112 | Summary: BloombergLP::balxml; Decoder; true; decode; (streambuf *,TYPE *,const char *); ; Argument[*0]; Argument[*1]; taint; manual | +| 113 | Summary: BloombergLP::balxml; Decoder; true; decodeAny; (istream &,AnyRef *,const char *); ; Argument[*0]; Argument[*1]; taint; manual | +| 114 | Summary: BloombergLP::balxml; Decoder; true; decodeAny; (istream &,AnyRef *,const char *); ; Argument[*0]; ReturnValue[*]; taint; manual | +| 115 | Summary: BloombergLP::balxml; Decoder; true; decodeAny; (streambuf *,AnyRef *,const char *); ; Argument[*0]; Argument[*1]; taint; manual | +| 116 | Summary: BloombergLP::balxml; Decoder; true; decodeAny; (istream &,TYPE *,const char *); ; Argument[*0]; Argument[*1]; taint; manual | +| 117 | Summary: BloombergLP::balxml; Decoder; true; decodeAny; (istream &,TYPE *,const char *); ; Argument[*0]; ReturnValue[*]; taint; manual | +| 118 | Summary: BloombergLP::balxml; Decoder; true; decodeAny; (streambuf *,TYPE *,const char *); ; Argument[*0]; Argument[*1]; taint; manual | +| 119 | Summary: BloombergLP::balxml; Encoder; true; encode; (ostream &,const TYPE &); ; Argument[*0..1]; ReturnValue[*]; taint; manual | +| 120 | Summary: BloombergLP::balxml; Encoder; true; encode; (ostream &,const TYPE &); ; Argument[*1]; Argument[*0]; taint; manual | +| 121 | Summary: BloombergLP::balxml; Encoder; true; encode; (streambuf *,const TYPE &); ; Argument[*1]; Argument[*0]; taint; manual | +| 122 | Summary: BloombergLP::balxml; Encoder; true; encodeAny; (ostream &,const AnyConstRef &); ; Argument[*0..1]; ReturnValue[*]; taint; manual | +| 123 | Summary: BloombergLP::balxml; Encoder; true; encodeAny; (ostream &,const AnyConstRef &); ; Argument[*1]; Argument[*0]; taint; manual | +| 124 | Summary: BloombergLP::balxml; Encoder; true; encodeAny; (streambuf *,const AnyConstRef &); ; Argument[*1]; Argument[*0]; taint; manual | +| 125 | Summary: BloombergLP::balxml; Encoder; true; encodeAny; (ostream &,const TYPE &); ; Argument[*0..1]; ReturnValue[*]; taint; manual | +| 126 | Summary: BloombergLP::balxml; Encoder; true; encodeAny; (ostream &,const TYPE &); ; Argument[*1]; Argument[*0]; taint; manual | +| 127 | Summary: BloombergLP::balxml; Encoder; true; encodeAny; (streambuf *,const TYPE &); ; Argument[*1]; Argument[*0]; taint; manual | +| 128 | Summary: BloombergLP::balxml; Encoder; true; encodeAnyToStream; ; ; Argument[*1]; Argument[*0]; taint; manual | +| 129 | Summary: BloombergLP::balxml; Encoder; true; encodeToStream; ; ; Argument[*1]; Argument[*0]; taint; manual | +| 130 | Summary: BloombergLP::bdlbb; Blob; true; buffer; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 131 | Summary: BloombergLP::bdlbb; BlobBuffer; true; buffer; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 132 | Summary: BloombergLP::bdlbb; BlobBuffer; true; data; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 133 | Summary: BloombergLP::bdlbb; BlobUtil; true; copy; (Blob *,int,const Blob &,int,int); ; Argument[*2]; Argument[*0]; taint; manual | +| 134 | Summary: BloombergLP::bdlbb; BlobUtil; true; copy; (Blob *,int,const char *,int); ; Argument[*2]; Argument[*0]; taint; manual | +| 135 | Summary: BloombergLP::bdlbb; BlobUtil; true; copy; (char *,const Blob &,int,int); ; Argument[*1]; Argument[*0]; taint; manual | +| 136 | Summary: BloombergLP::bdlbb; BlobUtil; true; getContiguousRangeOrCopy; ; ; Argument[*1]; ReturnValue[*]; taint; manual | +| 137 | Summary: BloombergLP::bmqa; Message; true; clone; ; ; Argument[-1]; ReturnValue; taint; manual | +| 138 | Summary: BloombergLP::bmqa; Message; true; getData; ; ; Argument[-1]; Argument[*0]; taint; manual | +| 139 | Summary: BloombergLP::bmqa; Message; true; loadProperties; ; ; Argument[-1]; Argument[*0]; taint; manual | +| 140 | Summary: BloombergLP::bmqa; Message; true; setData; ; ; Argument[*0]; Argument[-1]; taint; manual | +| 141 | Summary: BloombergLP::bmqa; Message; true; setDataRef; ; ; Argument[*0]; Argument[-1]; taint; manual | +| 142 | Summary: BloombergLP::bmqa; Message; true; setPropertiesRef; ; ; Argument[*0]; Argument[-1]; taint; manual | +| 143 | Summary: BloombergLP::bmqa; MessageEvent; true; messageIterator; ; ; Argument[-1]; ReturnValue; taint; manual | +| 144 | Summary: BloombergLP::bmqa; MessageIterator; true; message; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 145 | Summary: BloombergLP::bmqa; MessageProperties; true; MessageProperties; (const MessageProperties &,Allocator *); ; Argument[*0]; Argument[-1]; value; manual | +| 146 | Summary: BloombergLP::bmqa; MessageProperties; true; getPropertyAsBinary; ; ; Argument[-1]; ReturnValue[*].Element; taint; manual | +| 147 | Summary: BloombergLP::bmqa; MessageProperties; true; getPropertyAsBinaryOr; ; ; Argument[*1].Element[@]; ReturnValue[*].Element[@]; value; manual | +| 148 | Summary: BloombergLP::bmqa; MessageProperties; true; getPropertyAsBinaryOr; ; ; Argument[-1]; ReturnValue[*].Element; taint; manual | +| 149 | Summary: BloombergLP::bmqa; MessageProperties; true; getPropertyAsString; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 150 | Summary: BloombergLP::bmqa; MessageProperties; true; getPropertyAsStringOr; ; ; Argument[*1]; ReturnValue[*]; value; manual | +| 151 | Summary: BloombergLP::bmqa; MessageProperties; true; getPropertyAsStringOr; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 152 | Summary: BloombergLP::bmqa; MessageProperties; true; operator=; ; ; Argument[*0]; Argument[-1]; value; manual | +| 153 | Summary: BloombergLP::bmqa; MessageProperties; true; operator=; ; ; Argument[*0]; ReturnValue[*]; value; manual | +| 154 | Summary: BloombergLP::bmqa; MessageProperties; true; setPropertyAsBinary; ; ; Argument[0]; Argument[-1]; taint; manual | +| 155 | Summary: BloombergLP::bmqa; MessageProperties; true; setPropertyAsBinary; ; ; Argument[1]; Argument[-1]; taint; manual | +| 156 | Summary: BloombergLP::bmqa; MessageProperties; true; setPropertyAsBool; ; ; Argument[0]; Argument[-1]; taint; manual | +| 157 | Summary: BloombergLP::bmqa; MessageProperties; true; setPropertyAsChar; ; ; Argument[0]; Argument[-1]; taint; manual | +| 158 | Summary: BloombergLP::bmqa; MessageProperties; true; setPropertyAsInt32; ; ; Argument[0]; Argument[-1]; taint; manual | +| 159 | Summary: BloombergLP::bmqa; MessageProperties; true; setPropertyAsInt64; ; ; Argument[0]; Argument[-1]; taint; manual | +| 160 | Summary: BloombergLP::bmqa; MessageProperties; true; setPropertyAsShort; ; ; Argument[0]; Argument[-1]; taint; manual | +| 161 | Summary: BloombergLP::bmqa; MessageProperties; true; setPropertyAsString; ; ; Argument[0]; Argument[-1]; taint; manual | +| 162 | Summary: BloombergLP::bmqa; MessageProperties; true; setPropertyAsString; ; ; Argument[1]; Argument[-1]; taint; manual | +| 163 | Summary: BloombergLP::bmqa; MessageProperties; true; streamIn; ; ; Argument[*0]; Argument[-1]; taint; manual | +| 164 | Summary: BloombergLP::bmqa; MessageProperties; true; streamOut; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 165 | Summary: BloombergLP::bmqa; MessagePropertiesIterator; true; MessagePropertiesIterator; ; ; Argument[*0]; Argument[-1]; taint; manual | +| 166 | Summary: BloombergLP::bmqa; MessagePropertiesIterator; true; getAsBinary; ; ; Argument[-1]; ReturnValue[*].Element; taint; manual | +| 167 | Summary: BloombergLP::bmqa; MessagePropertiesIterator; true; getAsString; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 168 | Summary: BloombergLP::bmqa; MessagePropertiesIterator; true; name; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 169 | Summary: BloombergLP::bmqa; MessagePropertiesIterator; true; operator=; ; ; Argument[*0]; Argument[-1]; value; manual | +| 170 | Summary: BloombergLP::bmqa; MessagePropertiesIterator; true; operator=; ; ; Argument[*0]; ReturnValue[*]; value; manual | +| 171 | Summary: BloombergLP::bslx::InStreamFunctions; ; false; bdexStreamIn; ; ; Argument[*0]; Argument[*1]; taint; manual | +| 172 | Summary: BloombergLP::bslx::InStreamFunctions; ; false; bdexStreamIn; ; ; Argument[*0]; ReturnValue[*]; taint; manual | +| 173 | Summary: BloombergLP::bslx; ByteInStream; true; ByteInStream; ; ; Argument[*0]; Argument[-1]; taint; manual | +| 174 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayFloat32; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 175 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayFloat64; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 176 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayInt16; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 177 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayInt24; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 178 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayInt32; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 179 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayInt40; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 180 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayInt48; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 181 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayInt56; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 182 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayInt64; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 183 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayInt8; ; ; Argument[-1]; Argument[*0]; taint; manual | +| 184 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayInt8; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 185 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayUint16; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 186 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayUint24; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 187 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayUint32; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 188 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayUint40; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 189 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayUint48; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 190 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayUint56; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 191 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayUint64; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 192 | Summary: BloombergLP::bslx; ByteInStream; true; getArrayUint8; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 193 | Summary: BloombergLP::bslx; ByteInStream; true; getFloat32; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 194 | Summary: BloombergLP::bslx; ByteInStream; true; getFloat64; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 195 | Summary: BloombergLP::bslx; ByteInStream; true; getInt16; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 196 | Summary: BloombergLP::bslx; ByteInStream; true; getInt24; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 197 | Summary: BloombergLP::bslx; ByteInStream; true; getInt32; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 198 | Summary: BloombergLP::bslx; ByteInStream; true; getInt40; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 199 | Summary: BloombergLP::bslx; ByteInStream; true; getInt48; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 200 | Summary: BloombergLP::bslx; ByteInStream; true; getInt56; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 201 | Summary: BloombergLP::bslx; ByteInStream; true; getInt64; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 202 | Summary: BloombergLP::bslx; ByteInStream; true; getInt8; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 203 | Summary: BloombergLP::bslx; ByteInStream; true; getLength; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 204 | Summary: BloombergLP::bslx; ByteInStream; true; getString; ; ; Argument[-1]; Argument[*0]; taint; manual | +| 205 | Summary: BloombergLP::bslx; ByteInStream; true; getString; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 206 | Summary: BloombergLP::bslx; ByteInStream; true; getUint16; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 207 | Summary: BloombergLP::bslx; ByteInStream; true; getUint24; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 208 | Summary: BloombergLP::bslx; ByteInStream; true; getUint32; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 209 | Summary: BloombergLP::bslx; ByteInStream; true; getUint40; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 210 | Summary: BloombergLP::bslx; ByteInStream; true; getUint48; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 211 | Summary: BloombergLP::bslx; ByteInStream; true; getUint56; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 212 | Summary: BloombergLP::bslx; ByteInStream; true; getUint64; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 213 | Summary: BloombergLP::bslx; ByteInStream; true; getUint8; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 214 | Summary: BloombergLP::bslx; ByteInStream; true; getVersion; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 215 | Summary: BloombergLP::bslx; ByteInStream; true; reset; (const StringRef &); ; Argument[*0]; Argument[-1]; taint; manual | +| 216 | Summary: BloombergLP::bslx; ByteInStream; true; reset; (const char *,size_t); ; Argument[*0]; Argument[-1]; taint; manual | +| 217 | Summary: BloombergLP::bslx; GenericInStream; true; GenericInStream; ; ; Argument[*0]; Argument[-1]; taint; manual | +| 218 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayFloat32; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 219 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayFloat64; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 220 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayInt16; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 221 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayInt24; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 222 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayInt32; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 223 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayInt40; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 224 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayInt48; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 225 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayInt56; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 226 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayInt64; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 227 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayInt8; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 228 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayUint16; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 229 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayUint24; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 230 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayUint32; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 231 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayUint40; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 232 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayUint48; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 233 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayUint56; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 234 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayUint64; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 235 | Summary: BloombergLP::bslx; GenericInStream; true; getArrayUint8; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 236 | Summary: BloombergLP::bslx; GenericInStream; true; getFloat32; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 237 | Summary: BloombergLP::bslx; GenericInStream; true; getFloat64; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 238 | Summary: BloombergLP::bslx; GenericInStream; true; getInt16; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 239 | Summary: BloombergLP::bslx; GenericInStream; true; getInt24; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 240 | Summary: BloombergLP::bslx; GenericInStream; true; getInt32; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 241 | Summary: BloombergLP::bslx; GenericInStream; true; getInt40; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 242 | Summary: BloombergLP::bslx; GenericInStream; true; getInt48; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 243 | Summary: BloombergLP::bslx; GenericInStream; true; getInt56; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 244 | Summary: BloombergLP::bslx; GenericInStream; true; getInt64; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 245 | Summary: BloombergLP::bslx; GenericInStream; true; getInt8; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 246 | Summary: BloombergLP::bslx; GenericInStream; true; getLength; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 247 | Summary: BloombergLP::bslx; GenericInStream; true; getString; ; ; Argument[-1]; Argument[*0]; taint; manual | +| 248 | Summary: BloombergLP::bslx; GenericInStream; true; getString; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 249 | Summary: BloombergLP::bslx; GenericInStream; true; getUint16; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 250 | Summary: BloombergLP::bslx; GenericInStream; true; getUint24; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 251 | Summary: BloombergLP::bslx; GenericInStream; true; getUint32; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 252 | Summary: BloombergLP::bslx; GenericInStream; true; getUint40; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 253 | Summary: BloombergLP::bslx; GenericInStream; true; getUint48; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 254 | Summary: BloombergLP::bslx; GenericInStream; true; getUint56; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 255 | Summary: BloombergLP::bslx; GenericInStream; true; getUint64; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 256 | Summary: BloombergLP::bslx; GenericInStream; true; getUint8; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 257 | Summary: BloombergLP::bslx; GenericInStream; true; getVersion; ; ; Argument[-1]; ReturnValue[*]; taint; manual | +| 258 | Summary: boost::asio::ip; basic_resolver; false; resolve; (const InternetProtocol &,const string &,const string &); ; Argument[*1..2]; ReturnValue; taint; manual | +| 259 | Summary: boost::asio::ip; basic_resolver; false; resolve; (const InternetProtocol &,const string &,const string &,error_code &); ; Argument[*1..2]; ReturnValue; taint; manual | +| 260 | Summary: boost::asio::ip; basic_resolver; false; resolve; (const InternetProtocol &,const string &,const string &,flags); ; Argument[*1..2]; ReturnValue; taint; manual | +| 261 | Summary: boost::asio::ip; basic_resolver; false; resolve; (const InternetProtocol &,const string &,const string &,flags,error_code &); ; Argument[*1..2]; ReturnValue; taint; manual | +| 262 | Summary: boost::asio::ip; basic_resolver; false; resolve; (const string &,const string &); ; Argument[*0..1]; ReturnValue; taint; manual | +| 263 | Summary: boost::asio::ip; basic_resolver; false; resolve; (const string &,const string &,error_code &); ; Argument[*0..1]; ReturnValue; taint; manual | +| 264 | Summary: boost::asio::ip; basic_resolver; false; resolve; (const string &,const string &,flags); ; Argument[*0..1]; ReturnValue; taint; manual | +| 265 | Summary: boost::asio::ip; basic_resolver; false; resolve; (const string &,const string &,flags,error_code &); ; Argument[*0..1]; ReturnValue; taint; manual | +| 266 | Summary: boost::asio; ; false; buffer; ; ; Argument[*0]; ReturnValue; taint; manual | +| 267 | Summary: bsl; vector; true; data; ; ; Argument[-1].Element[@]; ReturnValue[*@]; value; manual | +| 268 | Summary: bsl; vector; true; operator[]; ; ; Argument[-1].Element[@]; ReturnValue[*@]; value; manual | +| 269 | Summary: bsl; vector; true; push_back; ; ; Argument[*@0]; Argument[-1].Element[@]; value; manual | +| 270 | Summary: google::protobuf; MessageLite; true; AppendPartialToCord; ; ; Argument[-1]; Argument[*0]; taint; manual | +| 271 | Summary: google::protobuf; MessageLite; true; AppendPartialToString; ; ; Argument[-1]; Argument[*0]; taint; manual | +| 272 | Summary: google::protobuf; MessageLite; true; AppendToCord; ; ; Argument[-1]; Argument[*0]; taint; manual | +| 273 | Summary: google::protobuf; MessageLite; true; AppendToString; ; ; Argument[-1]; Argument[*0]; taint; manual | +| 274 | Summary: google::protobuf; MessageLite; true; MergeFromBoundedZeroCopyStream; ; ; Argument[*0]; Argument[-1]; taint; manual | +| 275 | Summary: google::protobuf; MessageLite; true; MergeFromCodedStream; ; ; Argument[*0]; Argument[-1]; taint; manual | +| 276 | Summary: google::protobuf; MessageLite; true; MergeFromCord; ; ; Argument[*0]; Argument[-1]; taint; manual | +| 277 | Summary: google::protobuf; MessageLite; true; MergeFromString; (const Cord &); ; Argument[*0]; Argument[-1]; taint; manual | +| 278 | Summary: google::protobuf; MessageLite; true; MergeFromString; (string_view); ; Argument[0]; Argument[-1]; taint; manual | +| 279 | Summary: google::protobuf; MessageLite; true; MergePartialFromBoundedZeroCopyStream; ; ; Argument[*0]; Argument[-1]; taint; manual | +| 280 | Summary: google::protobuf; MessageLite; true; MergePartialFromCodedStream; ; ; Argument[*0]; Argument[-1]; taint; manual | +| 281 | Summary: google::protobuf; MessageLite; true; MergePartialFromCord; ; ; Argument[*0]; Argument[-1]; taint; manual | +| 282 | Summary: google::protobuf; MessageLite; true; MergePartialFromString; (const Cord &); ; Argument[*0]; Argument[-1]; taint; manual | +| 283 | Summary: google::protobuf; MessageLite; true; MergePartialFromString; (string_view); ; Argument[0]; Argument[-1]; taint; manual | +| 284 | Summary: google::protobuf; MessageLite; true; ParseFromArray; ; ; Argument[*0]; Argument[-1]; taint; manual | +| 285 | Summary: google::protobuf; MessageLite; true; ParseFromBoundedZeroCopyStream; ; ; Argument[*0]; Argument[-1]; taint; manual | +| 286 | Summary: google::protobuf; MessageLite; true; ParseFromCodedStream; ; ; Argument[*0]; Argument[-1]; taint; manual | +| 287 | Summary: google::protobuf; MessageLite; true; ParseFromCord; ; ; Argument[*0]; Argument[-1]; taint; manual | +| 288 | Summary: google::protobuf; MessageLite; true; ParseFromIstream; ; ; Argument[*0]; Argument[-1]; taint; manual | +| 289 | Summary: google::protobuf; MessageLite; true; ParseFromString; (const Cord &); ; Argument[*0]; Argument[-1]; taint; manual | +| 290 | Summary: google::protobuf; MessageLite; true; ParseFromString; (string_view); ; Argument[0]; Argument[-1]; taint; manual | +| 291 | Summary: google::protobuf; MessageLite; true; ParseFromZeroCopyStream; ; ; Argument[*0]; Argument[-1]; taint; manual | +| 292 | Summary: google::protobuf; MessageLite; true; ParsePartialFromArray; ; ; Argument[*0]; Argument[-1]; taint; manual | +| 293 | Summary: google::protobuf; MessageLite; true; ParsePartialFromBoundedZeroCopyStream; ; ; Argument[*0]; Argument[-1]; taint; manual | +| 294 | Summary: google::protobuf; MessageLite; true; ParsePartialFromCodedStream; ; ; Argument[*0]; Argument[-1]; taint; manual | +| 295 | Summary: google::protobuf; MessageLite; true; ParsePartialFromCord; ; ; Argument[*0]; Argument[-1]; taint; manual | +| 296 | Summary: google::protobuf; MessageLite; true; ParsePartialFromIstream; ; ; Argument[*0]; Argument[-1]; taint; manual | +| 297 | Summary: google::protobuf; MessageLite; true; ParsePartialFromString; (const Cord &); ; Argument[*0]; Argument[-1]; taint; manual | +| 298 | Summary: google::protobuf; MessageLite; true; ParsePartialFromString; (string_view); ; Argument[0]; Argument[-1]; taint; manual | +| 299 | Summary: google::protobuf; MessageLite; true; ParsePartialFromZeroCopyStream; ; ; Argument[*0]; Argument[-1]; taint; manual | +| 300 | Summary: google::protobuf; MessageLite; true; SerializeAsCord; ; ; Argument[-1]; ReturnValue; taint; manual | +| 301 | Summary: google::protobuf; MessageLite; true; SerializeAsString; ; ; Argument[-1]; ReturnValue; taint; manual | +| 302 | Summary: google::protobuf; MessageLite; true; SerializePartialAsCord; ; ; Argument[-1]; ReturnValue; taint; manual | +| 303 | Summary: google::protobuf; MessageLite; true; SerializePartialAsString; ; ; Argument[-1]; ReturnValue; taint; manual | +| 304 | Summary: google::protobuf; MessageLite; true; SerializePartialToArray; ; ; Argument[-1]; Argument[*0]; taint; manual | +| 305 | Summary: google::protobuf; MessageLite; true; SerializePartialToCodedStream; ; ; Argument[-1]; Argument[*0]; taint; manual | +| 306 | Summary: google::protobuf; MessageLite; true; SerializePartialToCord; ; ; Argument[-1]; Argument[*0]; taint; manual | +| 307 | Summary: google::protobuf; MessageLite; true; SerializePartialToOstream; ; ; Argument[-1]; Argument[*0]; taint; manual | +| 308 | Summary: google::protobuf; MessageLite; true; SerializePartialToString; ; ; Argument[-1]; Argument[*0]; taint; manual | +| 309 | Summary: google::protobuf; MessageLite; true; SerializePartialToZeroCopyStream; ; ; Argument[-1]; Argument[*0]; taint; manual | +| 310 | Summary: google::protobuf; MessageLite; true; SerializeToArray; ; ; Argument[-1]; Argument[*0]; taint; manual | +| 311 | Summary: google::protobuf; MessageLite; true; SerializeToCodedStream; ; ; Argument[-1]; Argument[*0]; taint; manual | +| 312 | Summary: google::protobuf; MessageLite; true; SerializeToCord; ; ; Argument[-1]; Argument[*0]; taint; manual | +| 313 | Summary: google::protobuf; MessageLite; true; SerializeToOstream; ; ; Argument[-1]; Argument[*0]; taint; manual | +| 314 | Summary: google::protobuf; MessageLite; true; SerializeToString; ; ; Argument[-1]; Argument[*0]; taint; manual | +| 315 | Summary: google::protobuf; MessageLite; true; SerializeToZeroCopyStream; ; ; Argument[-1]; Argument[*0]; taint; manual | +| 316 | Summary: std; vector; true; vector; (const vector &); ; Argument[*0].Element[@]; Argument[-1].Element[@]; value; manual | edges -| asio_streams.cpp:116:34:116:44 | read_until output argument | asio_streams.cpp:120:7:120:17 | recv_buffer | provenance | Src:MaD:56 | -| asio_streams.cpp:116:34:116:44 | read_until output argument | asio_streams.cpp:122:29:122:39 | recv_buffer | provenance | Src:MaD:56 Sink:MaD:4 | -| asio_streams.cpp:126:37:126:44 | call to source | asio_streams.cpp:127:7:127:14 | send_str | provenance | TaintFunction | -| asio_streams.cpp:126:37:126:44 | call to source | asio_streams.cpp:129:64:129:71 | *send_str | provenance | TaintFunction | -| asio_streams.cpp:129:44:129:62 | call to buffer | asio_streams.cpp:129:44:129:62 | call to buffer | provenance | | -| asio_streams.cpp:129:44:129:62 | call to buffer | asio_streams.cpp:130:7:130:17 | send_buffer | provenance | | -| asio_streams.cpp:129:44:129:62 | call to buffer | asio_streams.cpp:132:29:132:39 | send_buffer | provenance | Sink:MaD:4 | -| asio_streams.cpp:129:64:129:71 | *send_str | asio_streams.cpp:129:44:129:62 | call to buffer | provenance | MaD:272 | -| asio_streams.cpp:143:19:143:26 | call to source | asio_streams.cpp:148:24:148:27 | *host | provenance | TaintFunction | -| asio_streams.cpp:143:19:143:26 | call to source | asio_streams.cpp:149:24:149:27 | *host | provenance | TaintFunction | -| asio_streams.cpp:143:19:143:26 | call to source | asio_streams.cpp:150:24:150:27 | *host | provenance | TaintFunction | -| asio_streams.cpp:143:19:143:26 | call to source | asio_streams.cpp:151:24:151:27 | *host | provenance | TaintFunction | -| asio_streams.cpp:143:19:143:26 | call to source | asio_streams.cpp:158:34:158:37 | *host | provenance | TaintFunction | -| asio_streams.cpp:143:19:143:26 | call to source | asio_streams.cpp:159:34:159:37 | *host | provenance | TaintFunction | -| asio_streams.cpp:143:19:143:26 | call to source | asio_streams.cpp:160:34:160:37 | *host | provenance | TaintFunction | -| asio_streams.cpp:143:19:143:26 | call to source | asio_streams.cpp:161:34:161:37 | *host | provenance | TaintFunction | -| asio_streams.cpp:145:29:145:36 | call to source | asio_streams.cpp:153:24:153:32 | host_view | provenance | TaintFunction | -| asio_streams.cpp:145:29:145:36 | call to source | asio_streams.cpp:154:24:154:32 | host_view | provenance | TaintFunction | -| asio_streams.cpp:145:29:145:36 | call to source | asio_streams.cpp:155:24:155:32 | host_view | provenance | TaintFunction | -| asio_streams.cpp:145:29:145:36 | call to source | asio_streams.cpp:156:24:156:32 | host_view | provenance | TaintFunction | -| asio_streams.cpp:145:29:145:36 | call to source | asio_streams.cpp:163:34:163:42 | host_view | provenance | TaintFunction | -| asio_streams.cpp:145:29:145:36 | call to source | asio_streams.cpp:164:34:164:42 | host_view | provenance | TaintFunction | -| asio_streams.cpp:145:29:145:36 | call to source | asio_streams.cpp:165:34:165:42 | host_view | provenance | TaintFunction | -| asio_streams.cpp:145:29:145:36 | call to source | asio_streams.cpp:166:34:166:42 | host_view | provenance | TaintFunction | -| asio_streams.cpp:148:24:148:27 | *host | asio_streams.cpp:148:16:148:22 | call to resolve | provenance | MaD:264 | -| asio_streams.cpp:149:24:149:27 | *host | asio_streams.cpp:149:16:149:22 | call to resolve | provenance | MaD:265 | -| asio_streams.cpp:150:24:150:27 | *host | asio_streams.cpp:150:16:150:22 | call to resolve | provenance | MaD:266 | -| asio_streams.cpp:151:24:151:27 | *host | asio_streams.cpp:151:16:151:22 | call to resolve | provenance | MaD:267 | -| asio_streams.cpp:153:24:153:32 | host_view | asio_streams.cpp:153:16:153:22 | call to resolve | provenance | MaD:268 | -| asio_streams.cpp:154:24:154:32 | host_view | asio_streams.cpp:154:16:154:22 | call to resolve | provenance | MaD:269 | -| asio_streams.cpp:155:24:155:32 | host_view | asio_streams.cpp:155:16:155:22 | call to resolve | provenance | MaD:270 | -| asio_streams.cpp:156:24:156:32 | host_view | asio_streams.cpp:156:16:156:22 | call to resolve | provenance | MaD:271 | -| asio_streams.cpp:158:34:158:37 | *host | asio_streams.cpp:158:16:158:22 | call to resolve | provenance | MaD:256 | -| asio_streams.cpp:159:34:159:37 | *host | asio_streams.cpp:159:16:159:22 | call to resolve | provenance | MaD:257 | -| asio_streams.cpp:160:34:160:37 | *host | asio_streams.cpp:160:16:160:22 | call to resolve | provenance | MaD:258 | -| asio_streams.cpp:161:34:161:37 | *host | asio_streams.cpp:161:16:161:22 | call to resolve | provenance | MaD:259 | -| asio_streams.cpp:163:34:163:42 | host_view | asio_streams.cpp:163:16:163:22 | call to resolve | provenance | MaD:260 | -| asio_streams.cpp:164:34:164:42 | host_view | asio_streams.cpp:164:16:164:22 | call to resolve | provenance | MaD:261 | -| asio_streams.cpp:165:34:165:42 | host_view | asio_streams.cpp:165:16:165:22 | call to resolve | provenance | MaD:262 | -| asio_streams.cpp:166:34:166:42 | host_view | asio_streams.cpp:166:16:166:22 | call to resolve | provenance | MaD:263 | -| asio_streams.cpp:175:22:175:29 | call to source | asio_streams.cpp:179:30:179:36 | *service | provenance | TaintFunction | -| asio_streams.cpp:175:22:175:29 | call to source | asio_streams.cpp:180:30:180:36 | *service | provenance | TaintFunction | -| asio_streams.cpp:175:22:175:29 | call to source | asio_streams.cpp:181:30:181:36 | *service | provenance | TaintFunction | -| asio_streams.cpp:175:22:175:29 | call to source | asio_streams.cpp:182:30:182:36 | *service | provenance | TaintFunction | -| asio_streams.cpp:175:22:175:29 | call to source | asio_streams.cpp:189:40:189:46 | *service | provenance | TaintFunction | -| asio_streams.cpp:175:22:175:29 | call to source | asio_streams.cpp:190:40:190:46 | *service | provenance | TaintFunction | -| asio_streams.cpp:175:22:175:29 | call to source | asio_streams.cpp:191:40:191:46 | *service | provenance | TaintFunction | -| asio_streams.cpp:175:22:175:29 | call to source | asio_streams.cpp:192:40:192:46 | *service | provenance | TaintFunction | -| asio_streams.cpp:177:32:177:39 | call to source | asio_streams.cpp:184:35:184:46 | service_view | provenance | TaintFunction | -| asio_streams.cpp:177:32:177:39 | call to source | asio_streams.cpp:185:35:185:46 | service_view | provenance | TaintFunction | -| asio_streams.cpp:177:32:177:39 | call to source | asio_streams.cpp:186:35:186:46 | service_view | provenance | TaintFunction | -| asio_streams.cpp:177:32:177:39 | call to source | asio_streams.cpp:187:35:187:46 | service_view | provenance | TaintFunction | -| asio_streams.cpp:177:32:177:39 | call to source | asio_streams.cpp:194:45:194:56 | service_view | provenance | TaintFunction | -| asio_streams.cpp:177:32:177:39 | call to source | asio_streams.cpp:195:45:195:56 | service_view | provenance | TaintFunction | -| asio_streams.cpp:177:32:177:39 | call to source | asio_streams.cpp:196:45:196:56 | service_view | provenance | TaintFunction | -| asio_streams.cpp:177:32:177:39 | call to source | asio_streams.cpp:197:45:197:56 | service_view | provenance | TaintFunction | -| asio_streams.cpp:179:30:179:36 | *service | asio_streams.cpp:179:16:179:22 | call to resolve | provenance | MaD:264 | -| asio_streams.cpp:180:30:180:36 | *service | asio_streams.cpp:180:16:180:22 | call to resolve | provenance | MaD:265 | -| asio_streams.cpp:181:30:181:36 | *service | asio_streams.cpp:181:16:181:22 | call to resolve | provenance | MaD:266 | -| asio_streams.cpp:182:30:182:36 | *service | asio_streams.cpp:182:16:182:22 | call to resolve | provenance | MaD:267 | -| asio_streams.cpp:184:35:184:46 | service_view | asio_streams.cpp:184:16:184:22 | call to resolve | provenance | MaD:268 | -| asio_streams.cpp:185:35:185:46 | service_view | asio_streams.cpp:185:16:185:22 | call to resolve | provenance | MaD:269 | -| asio_streams.cpp:186:35:186:46 | service_view | asio_streams.cpp:186:16:186:22 | call to resolve | provenance | MaD:270 | -| asio_streams.cpp:187:35:187:46 | service_view | asio_streams.cpp:187:16:187:22 | call to resolve | provenance | MaD:271 | -| asio_streams.cpp:189:40:189:46 | *service | asio_streams.cpp:189:16:189:22 | call to resolve | provenance | MaD:256 | -| asio_streams.cpp:190:40:190:46 | *service | asio_streams.cpp:190:16:190:22 | call to resolve | provenance | MaD:257 | -| asio_streams.cpp:191:40:191:46 | *service | asio_streams.cpp:191:16:191:22 | call to resolve | provenance | MaD:258 | -| asio_streams.cpp:192:40:192:46 | *service | asio_streams.cpp:192:16:192:22 | call to resolve | provenance | MaD:259 | -| asio_streams.cpp:194:45:194:56 | service_view | asio_streams.cpp:194:16:194:22 | call to resolve | provenance | MaD:260 | -| asio_streams.cpp:195:45:195:56 | service_view | asio_streams.cpp:195:16:195:22 | call to resolve | provenance | MaD:261 | -| asio_streams.cpp:196:45:196:56 | service_view | asio_streams.cpp:196:16:196:22 | call to resolve | provenance | MaD:262 | -| asio_streams.cpp:197:45:197:56 | service_view | asio_streams.cpp:197:16:197:22 | call to resolve | provenance | MaD:263 | -| azure.cpp:253:48:253:60 | *call to GetBodyStream | azure.cpp:257:5:257:8 | *resp | provenance | | -| azure.cpp:253:48:253:60 | *call to GetBodyStream | azure.cpp:262:5:262:8 | *resp | provenance | | -| azure.cpp:253:48:253:60 | *call to GetBodyStream | azure.cpp:266:38:266:41 | *resp | provenance | | -| azure.cpp:253:48:253:60 | call to GetBodyStream | azure.cpp:253:48:253:60 | *call to GetBodyStream | provenance | Src:MaD:53 | -| azure.cpp:257:5:257:8 | *resp | azure.cpp:257:16:257:21 | Read output argument | provenance | MaD:95 | -| azure.cpp:257:16:257:21 | Read output argument | azure.cpp:258:10:258:16 | * ... | provenance | | -| azure.cpp:262:5:262:8 | *resp | azure.cpp:262:23:262:28 | ReadToCount output argument | provenance | MaD:96 | -| azure.cpp:262:23:262:28 | ReadToCount output argument | azure.cpp:263:10:263:16 | * ... | provenance | | -| azure.cpp:266:38:266:41 | *resp | azure.cpp:266:44:266:52 | call to ReadToEnd [element] | provenance | MaD:97 | -| azure.cpp:266:44:266:52 | call to ReadToEnd [element] | azure.cpp:266:44:266:52 | call to ReadToEnd [element] | provenance | | -| azure.cpp:266:44:266:52 | call to ReadToEnd [element] | azure.cpp:267:10:267:12 | vec [element] | provenance | | -| azure.cpp:267:10:267:12 | vec [element] | azure.cpp:267:10:267:12 | vec | provenance | | -| azure.cpp:273:52:273:61 | call to GetHeaders | azure.cpp:273:62:273:64 | call to GetHeaders | provenance | Src:MaD:52 | -| azure.cpp:273:62:273:64 | call to GetHeaders | azure.cpp:274:14:274:29 | call to operator[] | provenance | TaintFunction | -| azure.cpp:273:62:273:64 | call to GetHeaders | azure.cpp:274:14:274:29 | call to operator[] | provenance | TaintFunction | -| azure.cpp:273:62:273:64 | call to GetHeaders | azure.cpp:274:14:274:29 | call to operator[] | provenance | TaintFunction | -| azure.cpp:274:14:274:29 | call to operator[] | azure.cpp:274:10:274:29 | call to operator[] | provenance | | -| azure.cpp:274:14:274:29 | call to operator[] | azure.cpp:274:14:274:29 | call to operator[] | provenance | | -| azure.cpp:277:38:277:44 | call to GetBody | azure.cpp:277:45:277:47 | call to GetBody | provenance | Src:MaD:51 | -| azure.cpp:277:45:277:47 | call to GetBody | azure.cpp:278:10:278:13 | body | provenance | | -| azure.cpp:277:45:277:47 | call to GetBody | azure.cpp:278:10:278:13 | body | provenance | | -| azure.cpp:278:10:278:13 | body | azure.cpp:278:10:278:13 | body | provenance | | -| azure.cpp:281:68:281:84 | *call to ExtractBodyStream | azure.cpp:282:21:282:23 | *call to get | provenance | | -| azure.cpp:281:68:281:84 | call to ExtractBodyStream | azure.cpp:281:68:281:84 | *call to ExtractBodyStream | provenance | Src:MaD:50 | -| azure.cpp:282:21:282:23 | *call to get | azure.cpp:282:28:282:36 | call to ReadToEnd [element] | provenance | MaD:97 | -| azure.cpp:282:28:282:36 | call to ReadToEnd [element] | azure.cpp:282:10:282:38 | call to ReadToEnd | provenance | | -| azure.cpp:282:28:282:36 | call to ReadToEnd [element] | azure.cpp:282:28:282:36 | call to ReadToEnd [element] | provenance | | -| azure.cpp:289:24:289:56 | call to GetHeader | azure.cpp:289:63:289:65 | call to Value | provenance | MaD:98 | -| azure.cpp:289:32:289:40 | call to GetHeader | azure.cpp:289:24:289:56 | call to GetHeader | provenance | | -| azure.cpp:289:32:289:40 | call to GetHeader | azure.cpp:289:32:289:40 | call to GetHeader | provenance | Src:MaD:54 | -| azure.cpp:289:63:289:65 | call to Value | azure.cpp:289:63:289:65 | call to Value | provenance | | -| azure.cpp:289:63:289:65 | call to Value | azure.cpp:290:10:290:20 | headerValue | provenance | | -| azure.cpp:289:63:289:65 | call to Value | azure.cpp:290:10:290:20 | headerValue | provenance | | -| azure.cpp:290:10:290:20 | headerValue | azure.cpp:290:10:290:20 | headerValue | provenance | | -| azure.cpp:293:58:293:67 | call to GetHeaders | azure.cpp:293:58:293:67 | call to GetHeaders | provenance | Src:MaD:55 | -| azure.cpp:293:58:293:67 | call to GetHeaders | azure.cpp:294:38:294:53 | call to operator[] | provenance | TaintFunction | -| azure.cpp:294:38:294:53 | call to operator[] | azure.cpp:295:10:295:20 | contentType | provenance | | -| azure.cpp:294:38:294:53 | call to operator[] | azure.cpp:295:10:295:20 | contentType | provenance | | -| azure.cpp:295:10:295:20 | contentType | azure.cpp:295:10:295:20 | contentType | provenance | | +| asio_streams.cpp:109:34:109:44 | read_until output argument | asio_streams.cpp:113:7:113:17 | recv_buffer | provenance | Src:MaD:56 | +| asio_streams.cpp:109:34:109:44 | read_until output argument | asio_streams.cpp:115:29:115:39 | recv_buffer | provenance | Src:MaD:56 Sink:MaD:4 | +| asio_streams.cpp:119:37:119:44 | call to source | asio_streams.cpp:120:7:120:14 | send_str | provenance | TaintFunction | +| asio_streams.cpp:119:37:119:44 | call to source | asio_streams.cpp:122:64:122:71 | *send_str | provenance | TaintFunction | +| asio_streams.cpp:122:44:122:62 | call to buffer | asio_streams.cpp:122:44:122:62 | call to buffer | provenance | | +| asio_streams.cpp:122:44:122:62 | call to buffer | asio_streams.cpp:123:7:123:17 | send_buffer | provenance | | +| asio_streams.cpp:122:44:122:62 | call to buffer | asio_streams.cpp:125:29:125:39 | send_buffer | provenance | Sink:MaD:4 | +| asio_streams.cpp:122:64:122:71 | *send_str | asio_streams.cpp:122:44:122:62 | call to buffer | provenance | MaD:266 | +| asio_streams.cpp:136:19:136:26 | call to source | asio_streams.cpp:141:24:141:27 | *host | provenance | TaintFunction | +| asio_streams.cpp:136:19:136:26 | call to source | asio_streams.cpp:142:24:142:27 | *host | provenance | TaintFunction | +| asio_streams.cpp:136:19:136:26 | call to source | asio_streams.cpp:143:24:143:27 | *host | provenance | TaintFunction | +| asio_streams.cpp:136:19:136:26 | call to source | asio_streams.cpp:144:24:144:27 | *host | provenance | TaintFunction | +| asio_streams.cpp:136:19:136:26 | call to source | asio_streams.cpp:151:34:151:37 | *host | provenance | TaintFunction | +| asio_streams.cpp:136:19:136:26 | call to source | asio_streams.cpp:152:34:152:37 | *host | provenance | TaintFunction | +| asio_streams.cpp:136:19:136:26 | call to source | asio_streams.cpp:153:34:153:37 | *host | provenance | TaintFunction | +| asio_streams.cpp:136:19:136:26 | call to source | asio_streams.cpp:154:34:154:37 | *host | provenance | TaintFunction | +| asio_streams.cpp:141:24:141:27 | *host | asio_streams.cpp:141:16:141:22 | call to resolve | provenance | MaD:262 | +| asio_streams.cpp:142:24:142:27 | *host | asio_streams.cpp:142:16:142:22 | call to resolve | provenance | MaD:263 | +| asio_streams.cpp:143:24:143:27 | *host | asio_streams.cpp:143:16:143:22 | call to resolve | provenance | MaD:264 | +| asio_streams.cpp:144:24:144:27 | *host | asio_streams.cpp:144:16:144:22 | call to resolve | provenance | MaD:265 | +| asio_streams.cpp:151:34:151:37 | *host | asio_streams.cpp:151:16:151:22 | call to resolve | provenance | MaD:258 | +| asio_streams.cpp:152:34:152:37 | *host | asio_streams.cpp:152:16:152:22 | call to resolve | provenance | MaD:259 | +| asio_streams.cpp:153:34:153:37 | *host | asio_streams.cpp:153:16:153:22 | call to resolve | provenance | MaD:260 | +| asio_streams.cpp:154:34:154:37 | *host | asio_streams.cpp:154:16:154:22 | call to resolve | provenance | MaD:261 | +| asio_streams.cpp:168:22:168:29 | call to source | asio_streams.cpp:172:30:172:36 | *service | provenance | TaintFunction | +| asio_streams.cpp:168:22:168:29 | call to source | asio_streams.cpp:173:30:173:36 | *service | provenance | TaintFunction | +| asio_streams.cpp:168:22:168:29 | call to source | asio_streams.cpp:174:30:174:36 | *service | provenance | TaintFunction | +| asio_streams.cpp:168:22:168:29 | call to source | asio_streams.cpp:175:30:175:36 | *service | provenance | TaintFunction | +| asio_streams.cpp:168:22:168:29 | call to source | asio_streams.cpp:182:40:182:46 | *service | provenance | TaintFunction | +| asio_streams.cpp:168:22:168:29 | call to source | asio_streams.cpp:183:40:183:46 | *service | provenance | TaintFunction | +| asio_streams.cpp:168:22:168:29 | call to source | asio_streams.cpp:184:40:184:46 | *service | provenance | TaintFunction | +| asio_streams.cpp:168:22:168:29 | call to source | asio_streams.cpp:185:40:185:46 | *service | provenance | TaintFunction | +| asio_streams.cpp:172:30:172:36 | *service | asio_streams.cpp:172:16:172:22 | call to resolve | provenance | MaD:262 | +| asio_streams.cpp:173:30:173:36 | *service | asio_streams.cpp:173:16:173:22 | call to resolve | provenance | MaD:263 | +| asio_streams.cpp:174:30:174:36 | *service | asio_streams.cpp:174:16:174:22 | call to resolve | provenance | MaD:264 | +| asio_streams.cpp:175:30:175:36 | *service | asio_streams.cpp:175:16:175:22 | call to resolve | provenance | MaD:265 | +| asio_streams.cpp:182:40:182:46 | *service | asio_streams.cpp:182:16:182:22 | call to resolve | provenance | MaD:258 | +| asio_streams.cpp:183:40:183:46 | *service | asio_streams.cpp:183:16:183:22 | call to resolve | provenance | MaD:259 | +| asio_streams.cpp:184:40:184:46 | *service | asio_streams.cpp:184:16:184:22 | call to resolve | provenance | MaD:260 | +| asio_streams.cpp:185:40:185:46 | *service | asio_streams.cpp:185:16:185:22 | call to resolve | provenance | MaD:261 | +| azure.cpp:216:48:216:60 | *call to GetBodyStream | azure.cpp:220:5:220:8 | *resp | provenance | | +| azure.cpp:216:48:216:60 | *call to GetBodyStream | azure.cpp:225:5:225:8 | *resp | provenance | | +| azure.cpp:216:48:216:60 | *call to GetBodyStream | azure.cpp:229:38:229:41 | *resp | provenance | | +| azure.cpp:216:48:216:60 | call to GetBodyStream | azure.cpp:216:48:216:60 | *call to GetBodyStream | provenance | Src:MaD:53 | +| azure.cpp:220:5:220:8 | *resp | azure.cpp:220:16:220:21 | Read output argument | provenance | MaD:95 | +| azure.cpp:220:16:220:21 | Read output argument | azure.cpp:221:10:221:16 | * ... | provenance | | +| azure.cpp:225:5:225:8 | *resp | azure.cpp:225:23:225:28 | ReadToCount output argument | provenance | MaD:96 | +| azure.cpp:225:23:225:28 | ReadToCount output argument | azure.cpp:226:10:226:16 | * ... | provenance | | +| azure.cpp:229:38:229:41 | *resp | azure.cpp:229:44:229:52 | call to ReadToEnd [element] | provenance | MaD:97 | +| azure.cpp:229:44:229:52 | call to ReadToEnd [element] | azure.cpp:229:44:229:52 | call to ReadToEnd [element] | provenance | | +| azure.cpp:229:44:229:52 | call to ReadToEnd [element] | azure.cpp:230:10:230:12 | *vec [element] | provenance | | +| azure.cpp:229:44:229:52 | call to ReadToEnd [element] | azure.cpp:230:10:230:12 | call to vector | provenance | DataFlowFunction | +| azure.cpp:230:10:230:12 | *vec [element] | azure.cpp:230:10:230:12 | call to vector [element] | provenance | MaD:316 | +| azure.cpp:230:10:230:12 | call to vector [element] | azure.cpp:230:10:230:12 | call to vector | provenance | | +| azure.cpp:236:52:236:61 | call to GetHeaders | azure.cpp:237:14:237:29 | call to operator[] | provenance | Src:MaD:52 DataFlowFunction | +| azure.cpp:236:52:236:61 | call to GetHeaders | azure.cpp:237:14:237:29 | call to operator[] | provenance | Src:MaD:52 TaintFunction | +| azure.cpp:240:38:240:44 | call to GetBody | azure.cpp:241:10:241:13 | call to vector | provenance | Src:MaD:51 DataFlowFunction | +| azure.cpp:240:38:240:44 | call to GetBody | azure.cpp:241:10:241:13 | call to vector | provenance | Src:MaD:51 DataFlowFunction | +| azure.cpp:240:38:240:44 | call to GetBody | azure.cpp:241:10:241:13 | call to vector | provenance | Src:MaD:51 DataFlowFunction | +| azure.cpp:240:38:240:44 | call to GetBody | azure.cpp:241:10:241:13 | call to vector | provenance | Src:MaD:51 TaintFunction | +| azure.cpp:240:38:240:44 | call to GetBody | azure.cpp:241:10:241:13 | call to vector | provenance | Src:MaD:51 TaintFunction | +| azure.cpp:240:38:240:44 | call to GetBody | azure.cpp:241:10:241:13 | call to vector | provenance | Src:MaD:51 TaintFunction | +| azure.cpp:241:10:241:13 | call to vector | azure.cpp:241:10:241:13 | call to vector | provenance | | +| azure.cpp:244:68:244:84 | *call to ExtractBodyStream | azure.cpp:245:21:245:23 | *call to get | provenance | | +| azure.cpp:244:68:244:84 | call to ExtractBodyStream | azure.cpp:244:68:244:84 | *call to ExtractBodyStream | provenance | Src:MaD:50 | +| azure.cpp:245:21:245:23 | *call to get | azure.cpp:245:28:245:36 | call to ReadToEnd [element] | provenance | MaD:97 | +| azure.cpp:245:28:245:36 | call to ReadToEnd [element] | azure.cpp:245:10:245:38 | call to ReadToEnd | provenance | | +| azure.cpp:245:28:245:36 | call to ReadToEnd [element] | azure.cpp:245:28:245:36 | call to ReadToEnd [element] | provenance | | +| azure.cpp:255:24:255:56 | call to GetHeader | azure.cpp:255:63:255:65 | call to Value | provenance | MaD:100 | +| azure.cpp:255:32:255:40 | call to GetHeader | azure.cpp:255:24:255:56 | call to GetHeader | provenance | | +| azure.cpp:255:32:255:40 | call to GetHeader | azure.cpp:255:32:255:40 | call to GetHeader | provenance | Src:MaD:54 | +| azure.cpp:255:63:255:65 | call to Value | azure.cpp:255:63:255:65 | call to Value | provenance | | +| azure.cpp:255:63:255:65 | call to Value | azure.cpp:256:10:256:20 | headerValue | provenance | | +| azure.cpp:259:58:259:67 | call to GetHeaders | azure.cpp:259:58:259:67 | call to GetHeaders | provenance | Src:MaD:55 | +| azure.cpp:259:58:259:67 | call to GetHeaders | azure.cpp:260:38:260:53 | call to operator[] | provenance | TaintFunction | +| azure.cpp:260:38:260:53 | call to operator[] | azure.cpp:261:10:261:20 | contentType | provenance | | +| azure.cpp:268:3:268:5 | SetQueryParameters output argument | azure.cpp:269:8:269:10 | *url | provenance | | +| azure.cpp:268:26:268:45 | call to GetHeaders | azure.cpp:268:3:268:5 | SetQueryParameters output argument | provenance | MaD:99 | +| azure.cpp:268:34:268:43 | call to GetHeaders | azure.cpp:268:26:268:45 | call to GetHeaders | provenance | | +| azure.cpp:268:34:268:43 | call to GetHeaders | azure.cpp:268:34:268:43 | call to GetHeaders | provenance | Src:MaD:55 | +| azure.cpp:269:8:269:10 | *url | azure.cpp:269:12:269:29 | call to GetQueryParameters | provenance | MaD:98 | +| azure.cpp:269:12:269:29 | call to GetQueryParameters | azure.cpp:269:12:269:29 | call to GetQueryParameters | provenance | | +| azure.cpp:269:12:269:29 | call to GetQueryParameters | azure.cpp:269:32:269:40 | call to operator[] | provenance | TaintFunction | | bal.cpp:128:19:128:26 | call to source | bal.cpp:129:23:129:51 | *call to data | provenance | TaintFunction | | bal.cpp:129:23:129:51 | *call to data | bal.cpp:132:17:132:18 | *sb | provenance | | -| bal.cpp:132:17:132:18 | *sb | bal.cpp:132:21:132:24 | decode output argument | provenance | MaD:99 | +| bal.cpp:132:17:132:18 | *sb | bal.cpp:132:21:132:24 | decode output argument | provenance | MaD:101 | | bal.cpp:132:21:132:24 | decode output argument | bal.cpp:133:7:133:17 | * ... | provenance | TaintFunction | | bal.cpp:137:19:137:26 | call to source | bal.cpp:138:21:138:47 | *call to data | provenance | TaintFunction | | bal.cpp:138:21:138:47 | *call to data | bal.cpp:141:17:141:19 | ** ... | provenance | | -| bal.cpp:141:17:141:19 | ** ... | bal.cpp:141:22:141:25 | decode output argument | provenance | MaD:99 | +| bal.cpp:141:17:141:19 | ** ... | bal.cpp:141:22:141:25 | decode output argument | provenance | MaD:101 | | bal.cpp:141:22:141:25 | decode output argument | bal.cpp:142:7:142:17 | * ... | provenance | TaintFunction | | bal.cpp:146:19:146:26 | call to source | bal.cpp:147:23:147:51 | *call to data | provenance | TaintFunction | | bal.cpp:147:23:147:51 | *call to data | bal.cpp:150:20:150:21 | *sb | provenance | | -| bal.cpp:150:20:150:21 | *sb | bal.cpp:150:24:150:27 | decodeAny output argument | provenance | MaD:100 | +| bal.cpp:150:20:150:21 | *sb | bal.cpp:150:24:150:27 | decodeAny output argument | provenance | MaD:102 | | bal.cpp:150:24:150:27 | decodeAny output argument | bal.cpp:151:7:151:17 | * ... | provenance | TaintFunction | | bal.cpp:156:18:156:25 | call to source | bal.cpp:159:40:159:42 | *obj | provenance | TaintFunction | | bal.cpp:159:17:159:37 | encode output argument | bal.cpp:160:7:160:12 | access to array | provenance | | -| bal.cpp:159:40:159:42 | *obj | bal.cpp:159:17:159:37 | encode output argument | provenance | MaD:101 | +| bal.cpp:159:40:159:42 | *obj | bal.cpp:159:17:159:37 | encode output argument | provenance | MaD:103 | | bal.cpp:164:18:164:25 | call to source | bal.cpp:167:43:167:45 | *obj | provenance | TaintFunction | | bal.cpp:167:20:167:40 | encodeAny output argument | bal.cpp:168:7:168:12 | access to array | provenance | | -| bal.cpp:167:43:167:45 | *obj | bal.cpp:167:20:167:40 | encodeAny output argument | provenance | MaD:102 | +| bal.cpp:167:43:167:45 | *obj | bal.cpp:167:20:167:40 | encodeAny output argument | provenance | MaD:104 | | bal.cpp:175:19:175:26 | call to source | bal.cpp:176:23:176:51 | *call to data | provenance | TaintFunction | | bal.cpp:176:23:176:51 | *call to data | bal.cpp:180:17:180:18 | *sb | provenance | | -| bal.cpp:180:17:180:18 | *sb | bal.cpp:180:21:180:24 | decode output argument | provenance | MaD:103 | +| bal.cpp:180:17:180:18 | *sb | bal.cpp:180:21:180:24 | decode output argument | provenance | MaD:105 | | bal.cpp:180:21:180:24 | decode output argument | bal.cpp:181:7:181:17 | * ... | provenance | TaintFunction | | bal.cpp:185:19:185:26 | call to source | bal.cpp:186:21:186:47 | *call to data | provenance | TaintFunction | | bal.cpp:186:21:186:47 | *call to data | bal.cpp:190:17:190:19 | ** ... | provenance | | -| bal.cpp:190:17:190:19 | ** ... | bal.cpp:190:22:190:25 | decode output argument | provenance | MaD:103 | +| bal.cpp:190:17:190:19 | ** ... | bal.cpp:190:22:190:25 | decode output argument | provenance | MaD:105 | | bal.cpp:190:22:190:25 | decode output argument | bal.cpp:191:7:191:17 | * ... | provenance | TaintFunction | | bal.cpp:195:19:195:26 | call to source | bal.cpp:196:23:196:51 | *call to data | provenance | TaintFunction | | bal.cpp:196:23:196:51 | *call to data | bal.cpp:199:20:199:21 | *sb | provenance | | -| bal.cpp:199:20:199:21 | *sb | bal.cpp:199:24:199:27 | decodeAny output argument | provenance | MaD:104 | +| bal.cpp:199:20:199:21 | *sb | bal.cpp:199:24:199:27 | decodeAny output argument | provenance | MaD:106 | | bal.cpp:199:24:199:27 | decodeAny output argument | bal.cpp:200:7:200:17 | * ... | provenance | TaintFunction | | bal.cpp:204:18:204:25 | call to source | bal.cpp:208:40:208:42 | *obj | provenance | TaintFunction | | bal.cpp:208:17:208:37 | encode output argument | bal.cpp:209:7:209:12 | access to array | provenance | | -| bal.cpp:208:40:208:42 | *obj | bal.cpp:208:17:208:37 | encode output argument | provenance | MaD:105 | +| bal.cpp:208:40:208:42 | *obj | bal.cpp:208:17:208:37 | encode output argument | provenance | MaD:107 | | bal.cpp:213:18:213:25 | call to source | bal.cpp:216:43:216:45 | *obj | provenance | TaintFunction | | bal.cpp:216:20:216:40 | encodeAny output argument | bal.cpp:217:7:217:12 | access to array | provenance | | -| bal.cpp:216:43:216:45 | *obj | bal.cpp:216:20:216:40 | encodeAny output argument | provenance | MaD:106 | +| bal.cpp:216:43:216:45 | *obj | bal.cpp:216:20:216:40 | encodeAny output argument | provenance | MaD:108 | | bal.cpp:222:19:222:26 | call to source | bal.cpp:223:23:223:51 | *call to data | provenance | TaintFunction | | bal.cpp:223:23:223:51 | *call to data | bal.cpp:226:17:226:18 | *sb | provenance | | -| bal.cpp:226:17:226:18 | *sb | bal.cpp:226:21:226:24 | decode output argument | provenance | MaD:103 | +| bal.cpp:226:17:226:18 | *sb | bal.cpp:226:21:226:24 | decode output argument | provenance | MaD:105 | | bal.cpp:226:21:226:24 | decode output argument | bal.cpp:229:40:229:42 | *rec | provenance | | | bal.cpp:229:17:229:37 | encode output argument | bal.cpp:230:7:230:12 | access to array | provenance | | -| bal.cpp:229:40:229:42 | *rec | bal.cpp:229:17:229:37 | encode output argument | provenance | MaD:105 | +| bal.cpp:229:40:229:42 | *rec | bal.cpp:229:17:229:37 | encode output argument | provenance | MaD:107 | | bal.cpp:245:19:245:26 | call to source | bal.cpp:246:21:246:47 | *call to data | provenance | TaintFunction | | bal.cpp:246:21:246:47 | *call to data | bal.cpp:249:17:249:19 | ** ... | provenance | | -| bal.cpp:249:17:249:19 | ** ... | bal.cpp:249:22:249:25 | decode output argument | provenance | MaD:108 | +| bal.cpp:249:17:249:19 | ** ... | bal.cpp:249:22:249:25 | decode output argument | provenance | MaD:110 | | bal.cpp:249:22:249:25 | decode output argument | bal.cpp:250:7:250:17 | * ... | provenance | TaintFunction | | bal.cpp:254:19:254:26 | call to source | bal.cpp:255:21:255:47 | *call to data | provenance | TaintFunction | | bal.cpp:255:21:255:47 | *call to data | bal.cpp:258:35:258:37 | ** ... | provenance | | | bal.cpp:258:34:258:52 | *call to decode | bal.cpp:258:34:258:52 | *call to decode | provenance | | | bal.cpp:258:34:258:52 | *call to decode | bal.cpp:259:7:259:17 | * ... | provenance | | -| bal.cpp:258:35:258:37 | ** ... | bal.cpp:258:34:258:52 | *call to decode | provenance | MaD:109 | -| bal.cpp:258:35:258:37 | ** ... | bal.cpp:258:40:258:43 | decode output argument | provenance | MaD:108 | +| bal.cpp:258:35:258:37 | ** ... | bal.cpp:258:34:258:52 | *call to decode | provenance | MaD:111 | +| bal.cpp:258:35:258:37 | ** ... | bal.cpp:258:40:258:43 | decode output argument | provenance | MaD:110 | | bal.cpp:258:40:258:43 | decode output argument | bal.cpp:260:7:260:9 | out | provenance | | | bal.cpp:264:19:264:26 | call to source | bal.cpp:265:23:265:51 | *call to data | provenance | TaintFunction | | bal.cpp:265:23:265:51 | *call to data | bal.cpp:268:17:268:18 | *sb | provenance | | -| bal.cpp:268:17:268:18 | *sb | bal.cpp:268:21:268:24 | decode output argument | provenance | MaD:110 | +| bal.cpp:268:17:268:18 | *sb | bal.cpp:268:21:268:24 | decode output argument | provenance | MaD:112 | | bal.cpp:268:21:268:24 | decode output argument | bal.cpp:269:7:269:17 | * ... | provenance | TaintFunction | | bal.cpp:273:19:273:26 | call to source | bal.cpp:276:22:276:25 | *call to data | provenance | TaintFunction | -| bal.cpp:276:22:276:25 | *call to data | bal.cpp:276:43:276:46 | decode output argument | provenance | MaD:107 | +| bal.cpp:276:22:276:25 | *call to data | bal.cpp:276:43:276:46 | decode output argument | provenance | MaD:109 | | bal.cpp:276:43:276:46 | decode output argument | bal.cpp:277:7:277:17 | * ... | provenance | TaintFunction | | bal.cpp:301:19:301:26 | call to source | bal.cpp:302:21:302:47 | *call to data | provenance | TaintFunction | | bal.cpp:302:21:302:47 | *call to data | bal.cpp:305:20:305:22 | ** ... | provenance | | -| bal.cpp:305:20:305:22 | ** ... | bal.cpp:305:25:305:28 | decodeAny output argument | provenance | MaD:114 | +| bal.cpp:305:20:305:22 | ** ... | bal.cpp:305:25:305:28 | decodeAny output argument | provenance | MaD:116 | | bal.cpp:305:25:305:28 | decodeAny output argument | bal.cpp:306:7:306:17 | * ... | provenance | TaintFunction | | bal.cpp:310:19:310:26 | call to source | bal.cpp:311:21:311:47 | *call to data | provenance | TaintFunction | | bal.cpp:311:21:311:47 | *call to data | bal.cpp:314:38:314:40 | ** ... | provenance | | | bal.cpp:314:37:314:48 | *call to decodeAny | bal.cpp:314:37:314:48 | *call to decodeAny | provenance | | | bal.cpp:314:37:314:48 | *call to decodeAny | bal.cpp:315:7:315:17 | * ... | provenance | | -| bal.cpp:314:38:314:40 | ** ... | bal.cpp:314:37:314:48 | *call to decodeAny | provenance | MaD:115 | -| bal.cpp:314:38:314:40 | ** ... | bal.cpp:314:43:314:46 | decodeAny output argument | provenance | MaD:114 | +| bal.cpp:314:38:314:40 | ** ... | bal.cpp:314:37:314:48 | *call to decodeAny | provenance | MaD:117 | +| bal.cpp:314:38:314:40 | ** ... | bal.cpp:314:43:314:46 | decodeAny output argument | provenance | MaD:116 | | bal.cpp:314:43:314:46 | decodeAny output argument | bal.cpp:316:7:316:9 | out | provenance | | | bal.cpp:320:19:320:26 | call to source | bal.cpp:321:23:321:51 | *call to data | provenance | TaintFunction | | bal.cpp:321:23:321:51 | *call to data | bal.cpp:324:20:324:21 | *sb | provenance | | -| bal.cpp:324:20:324:21 | *sb | bal.cpp:324:24:324:27 | decodeAny output argument | provenance | MaD:116 | +| bal.cpp:324:20:324:21 | *sb | bal.cpp:324:24:324:27 | decodeAny output argument | provenance | MaD:118 | | bal.cpp:324:24:324:27 | decodeAny output argument | bal.cpp:325:7:325:17 | * ... | provenance | TaintFunction | | bal.cpp:329:19:329:26 | call to source | bal.cpp:330:21:330:47 | *call to data | provenance | TaintFunction | | bal.cpp:330:21:330:47 | *call to data | bal.cpp:333:20:333:22 | ** ... | provenance | | -| bal.cpp:333:20:333:22 | ** ... | bal.cpp:333:25:333:28 | decodeAny output argument | provenance | MaD:111 | +| bal.cpp:333:20:333:22 | ** ... | bal.cpp:333:25:333:28 | decodeAny output argument | provenance | MaD:113 | | bal.cpp:333:25:333:28 | decodeAny output argument | bal.cpp:334:7:334:19 | * ... | provenance | | | bal.cpp:338:19:338:26 | call to source | bal.cpp:339:21:339:47 | *call to data | provenance | TaintFunction | | bal.cpp:339:21:339:47 | *call to data | bal.cpp:342:38:342:40 | ** ... | provenance | | | bal.cpp:342:37:342:48 | *call to decodeAny | bal.cpp:342:37:342:48 | *call to decodeAny | provenance | | | bal.cpp:342:37:342:48 | *call to decodeAny | bal.cpp:343:7:343:17 | * ... | provenance | | -| bal.cpp:342:38:342:40 | ** ... | bal.cpp:342:37:342:48 | *call to decodeAny | provenance | MaD:112 | -| bal.cpp:342:38:342:40 | ** ... | bal.cpp:342:43:342:46 | decodeAny output argument | provenance | MaD:111 | +| bal.cpp:342:38:342:40 | ** ... | bal.cpp:342:37:342:48 | *call to decodeAny | provenance | MaD:114 | +| bal.cpp:342:38:342:40 | ** ... | bal.cpp:342:43:342:46 | decodeAny output argument | provenance | MaD:113 | | bal.cpp:342:43:342:46 | decodeAny output argument | bal.cpp:344:7:344:19 | * ... | provenance | | | bal.cpp:348:19:348:26 | call to source | bal.cpp:349:23:349:51 | *call to data | provenance | TaintFunction | | bal.cpp:349:23:349:51 | *call to data | bal.cpp:352:20:352:21 | *sb | provenance | | -| bal.cpp:352:20:352:21 | *sb | bal.cpp:352:24:352:27 | decodeAny output argument | provenance | MaD:113 | +| bal.cpp:352:20:352:21 | *sb | bal.cpp:352:24:352:27 | decodeAny output argument | provenance | MaD:115 | | bal.cpp:352:24:352:27 | decodeAny output argument | bal.cpp:353:7:353:19 | * ... | provenance | | | bal.cpp:357:18:357:25 | call to source | bal.cpp:360:40:360:42 | *obj | provenance | TaintFunction | | bal.cpp:360:17:360:37 | encode output argument | bal.cpp:361:7:361:12 | access to array | provenance | | -| bal.cpp:360:40:360:42 | *obj | bal.cpp:360:17:360:37 | encode output argument | provenance | MaD:119 | +| bal.cpp:360:40:360:42 | *obj | bal.cpp:360:17:360:37 | encode output argument | provenance | MaD:121 | | bal.cpp:365:18:365:25 | call to source | bal.cpp:368:39:368:41 | *obj | provenance | TaintFunction | | bal.cpp:368:17:368:36 | encode output argument | bal.cpp:369:7:369:12 | access to array | provenance | | -| bal.cpp:368:39:368:41 | *obj | bal.cpp:368:17:368:36 | encode output argument | provenance | MaD:118 | +| bal.cpp:368:39:368:41 | *obj | bal.cpp:368:17:368:36 | encode output argument | provenance | MaD:120 | | bal.cpp:373:18:373:25 | call to source | bal.cpp:376:57:376:59 | *obj | provenance | TaintFunction | | bal.cpp:376:34:376:61 | *call to encode | bal.cpp:376:34:376:61 | *call to encode | provenance | | | bal.cpp:376:34:376:61 | *call to encode | bal.cpp:377:7:377:17 | * ... | provenance | | | bal.cpp:376:35:376:54 | encode output argument | bal.cpp:378:7:378:12 | access to array | provenance | | -| bal.cpp:376:57:376:59 | *obj | bal.cpp:376:34:376:61 | *call to encode | provenance | MaD:117 | -| bal.cpp:376:57:376:59 | *obj | bal.cpp:376:35:376:54 | encode output argument | provenance | MaD:118 | +| bal.cpp:376:57:376:59 | *obj | bal.cpp:376:34:376:61 | *call to encode | provenance | MaD:119 | +| bal.cpp:376:57:376:59 | *obj | bal.cpp:376:35:376:54 | encode output argument | provenance | MaD:120 | | bal.cpp:382:19:382:26 | call to source | bal.cpp:383:21:383:47 | *call to data | provenance | TaintFunction | | bal.cpp:383:21:383:47 | *call to data | bal.cpp:386:35:386:37 | ** ... | provenance | | | bal.cpp:386:34:386:44 | *call to encode | bal.cpp:386:34:386:44 | *call to encode | provenance | | | bal.cpp:386:34:386:44 | *call to encode | bal.cpp:387:7:387:17 | * ... | provenance | | -| bal.cpp:386:35:386:37 | ** ... | bal.cpp:386:34:386:44 | *call to encode | provenance | MaD:117 | +| bal.cpp:386:35:386:37 | ** ... | bal.cpp:386:34:386:44 | *call to encode | provenance | MaD:119 | | bal.cpp:391:18:391:25 | call to source | bal.cpp:394:47:394:49 | *obj | provenance | TaintFunction | | bal.cpp:394:25:394:44 | encodeToStream output argument | bal.cpp:395:7:395:12 | access to array | provenance | | -| bal.cpp:394:47:394:49 | *obj | bal.cpp:394:25:394:44 | encodeToStream output argument | provenance | MaD:127 | +| bal.cpp:394:47:394:49 | *obj | bal.cpp:394:25:394:44 | encodeToStream output argument | provenance | MaD:129 | | bal.cpp:409:18:409:25 | call to source | bal.cpp:412:43:412:45 | *obj | provenance | TaintFunction | | bal.cpp:412:20:412:40 | encodeAny output argument | bal.cpp:413:7:413:12 | access to array | provenance | | -| bal.cpp:412:43:412:45 | *obj | bal.cpp:412:20:412:40 | encodeAny output argument | provenance | MaD:125 | +| bal.cpp:412:43:412:45 | *obj | bal.cpp:412:20:412:40 | encodeAny output argument | provenance | MaD:127 | | bal.cpp:417:18:417:25 | call to source | bal.cpp:420:42:420:44 | *obj | provenance | TaintFunction | | bal.cpp:420:20:420:39 | encodeAny output argument | bal.cpp:421:7:421:12 | access to array | provenance | | -| bal.cpp:420:42:420:44 | *obj | bal.cpp:420:20:420:39 | encodeAny output argument | provenance | MaD:124 | +| bal.cpp:420:42:420:44 | *obj | bal.cpp:420:20:420:39 | encodeAny output argument | provenance | MaD:126 | | bal.cpp:425:18:425:25 | call to source | bal.cpp:428:60:428:62 | *obj | provenance | TaintFunction | | bal.cpp:428:37:428:64 | *call to encodeAny | bal.cpp:428:37:428:64 | *call to encodeAny | provenance | | | bal.cpp:428:37:428:64 | *call to encodeAny | bal.cpp:429:7:429:17 | * ... | provenance | | | bal.cpp:428:38:428:57 | encodeAny output argument | bal.cpp:430:7:430:12 | access to array | provenance | | -| bal.cpp:428:60:428:62 | *obj | bal.cpp:428:37:428:64 | *call to encodeAny | provenance | MaD:123 | -| bal.cpp:428:60:428:62 | *obj | bal.cpp:428:38:428:57 | encodeAny output argument | provenance | MaD:124 | +| bal.cpp:428:60:428:62 | *obj | bal.cpp:428:37:428:64 | *call to encodeAny | provenance | MaD:125 | +| bal.cpp:428:60:428:62 | *obj | bal.cpp:428:38:428:57 | encodeAny output argument | provenance | MaD:126 | | bal.cpp:434:18:434:25 | call to source | bal.cpp:437:50:437:52 | *obj | provenance | TaintFunction | | bal.cpp:437:28:437:47 | encodeAnyToStream output argument | bal.cpp:438:7:438:12 | access to array | provenance | | -| bal.cpp:437:50:437:52 | *obj | bal.cpp:437:28:437:47 | encodeAnyToStream output argument | provenance | MaD:126 | +| bal.cpp:437:50:437:52 | *obj | bal.cpp:437:28:437:47 | encodeAnyToStream output argument | provenance | MaD:128 | | bal.cpp:442:19:442:26 | call to source | bal.cpp:443:41:443:86 | *call to data | provenance | TaintFunction | | bal.cpp:443:41:443:86 | *call to data | bal.cpp:446:43:446:46 | ** ... | provenance | | | bal.cpp:446:20:446:40 | encodeAny output argument | bal.cpp:447:7:447:12 | access to array | provenance | | -| bal.cpp:446:43:446:46 | ** ... | bal.cpp:446:20:446:40 | encodeAny output argument | provenance | MaD:122 | +| bal.cpp:446:43:446:46 | ** ... | bal.cpp:446:20:446:40 | encodeAny output argument | provenance | MaD:124 | | bal.cpp:451:19:451:26 | call to source | bal.cpp:452:41:452:86 | *call to data | provenance | TaintFunction | | bal.cpp:452:41:452:86 | *call to data | bal.cpp:455:42:455:45 | ** ... | provenance | | | bal.cpp:455:20:455:39 | encodeAny output argument | bal.cpp:456:7:456:12 | access to array | provenance | | -| bal.cpp:455:42:455:45 | ** ... | bal.cpp:455:20:455:39 | encodeAny output argument | provenance | MaD:121 | +| bal.cpp:455:42:455:45 | ** ... | bal.cpp:455:20:455:39 | encodeAny output argument | provenance | MaD:123 | | bal.cpp:460:19:460:26 | call to source | bal.cpp:461:41:461:86 | *call to data | provenance | TaintFunction | | bal.cpp:461:41:461:86 | *call to data | bal.cpp:464:60:464:63 | ** ... | provenance | | | bal.cpp:464:37:464:65 | *call to encodeAny | bal.cpp:464:37:464:65 | *call to encodeAny | provenance | | | bal.cpp:464:37:464:65 | *call to encodeAny | bal.cpp:465:7:465:17 | * ... | provenance | | | bal.cpp:464:38:464:57 | encodeAny output argument | bal.cpp:466:7:466:12 | access to array | provenance | | -| bal.cpp:464:60:464:63 | ** ... | bal.cpp:464:37:464:65 | *call to encodeAny | provenance | MaD:120 | -| bal.cpp:464:60:464:63 | ** ... | bal.cpp:464:38:464:57 | encodeAny output argument | provenance | MaD:121 | +| bal.cpp:464:60:464:63 | ** ... | bal.cpp:464:37:464:65 | *call to encodeAny | provenance | MaD:122 | +| bal.cpp:464:60:464:63 | ** ... | bal.cpp:464:38:464:57 | encodeAny output argument | provenance | MaD:123 | | bdlbb.cpp:37:16:37:23 | call to source | bdlbb.cpp:39:49:39:52 | *call to data | provenance | TaintFunction | | bdlbb.cpp:39:37:39:41 | copy output argument | bdlbb.cpp:41:42:41:45 | *blob | provenance | | -| bdlbb.cpp:39:49:39:52 | *call to data | bdlbb.cpp:39:37:39:41 | copy output argument | provenance | MaD:132 | +| bdlbb.cpp:39:49:39:52 | *call to data | bdlbb.cpp:39:37:39:41 | copy output argument | provenance | MaD:134 | | bdlbb.cpp:41:37:41:39 | copy output argument | bdlbb.cpp:42:7:42:10 | * ... | provenance | | -| bdlbb.cpp:41:42:41:45 | *blob | bdlbb.cpp:41:37:41:39 | copy output argument | provenance | MaD:133 | +| bdlbb.cpp:41:42:41:45 | *blob | bdlbb.cpp:41:37:41:39 | copy output argument | provenance | MaD:135 | | bdlbb.cpp:46:16:46:23 | call to source | bdlbb.cpp:48:49:48:52 | *call to data | provenance | TaintFunction | | bdlbb.cpp:48:37:48:41 | copy output argument | bdlbb.cpp:49:18:49:21 | *blob | provenance | | -| bdlbb.cpp:48:49:48:52 | *call to data | bdlbb.cpp:48:37:48:41 | copy output argument | provenance | MaD:132 | -| bdlbb.cpp:49:18:49:21 | *blob | bdlbb.cpp:49:29:49:32 | *call to buffer | provenance | MaD:128 | +| bdlbb.cpp:48:49:48:52 | *call to data | bdlbb.cpp:48:37:48:41 | copy output argument | provenance | MaD:134 | +| bdlbb.cpp:49:18:49:21 | *blob | bdlbb.cpp:49:29:49:32 | *call to buffer | provenance | MaD:130 | | bdlbb.cpp:49:18:49:38 | *call to data | bdlbb.cpp:49:18:49:38 | *call to data | provenance | | | bdlbb.cpp:49:18:49:38 | *call to data | bdlbb.cpp:50:7:50:8 | * ... | provenance | | -| bdlbb.cpp:49:29:49:32 | *call to buffer | bdlbb.cpp:49:18:49:38 | *call to data | provenance | MaD:130 | +| bdlbb.cpp:49:29:49:32 | *call to buffer | bdlbb.cpp:49:18:49:38 | *call to data | provenance | MaD:132 | | bdlbb.cpp:55:16:55:23 | call to source | bdlbb.cpp:57:49:57:52 | *call to data | provenance | TaintFunction | | bdlbb.cpp:57:37:57:41 | copy output argument | bdlbb.cpp:58:18:58:21 | *blob | provenance | | -| bdlbb.cpp:57:49:57:52 | *call to data | bdlbb.cpp:57:37:57:41 | copy output argument | provenance | MaD:132 | -| bdlbb.cpp:58:18:58:21 | *blob | bdlbb.cpp:58:29:58:32 | *call to buffer | provenance | MaD:128 | +| bdlbb.cpp:57:49:57:52 | *call to data | bdlbb.cpp:57:37:57:41 | copy output argument | provenance | MaD:134 | +| bdlbb.cpp:58:18:58:21 | *blob | bdlbb.cpp:58:29:58:32 | *call to buffer | provenance | MaD:130 | | bdlbb.cpp:58:18:58:46 | call to get | bdlbb.cpp:59:7:59:8 | * ... | provenance | | -| bdlbb.cpp:58:29:58:32 | *call to buffer | bdlbb.cpp:58:39:58:41 | *call to buffer | provenance | MaD:129 | +| bdlbb.cpp:58:29:58:32 | *call to buffer | bdlbb.cpp:58:39:58:41 | *call to buffer | provenance | MaD:131 | | bdlbb.cpp:58:39:58:41 | *call to buffer | bdlbb.cpp:58:18:58:46 | call to get | provenance | DataFlowFunction | | bdlbb.cpp:63:16:63:23 | call to source | bdlbb.cpp:65:49:65:52 | *call to data | provenance | TaintFunction | | bdlbb.cpp:65:37:65:41 | copy output argument | bdlbb.cpp:67:72:67:75 | *blob | provenance | | -| bdlbb.cpp:65:49:65:52 | *call to data | bdlbb.cpp:65:37:65:41 | copy output argument | provenance | MaD:132 | +| bdlbb.cpp:65:49:65:52 | *call to data | bdlbb.cpp:65:37:65:41 | copy output argument | provenance | MaD:134 | | bdlbb.cpp:67:12:67:65 | *call to getContiguousRangeOrCopy | bdlbb.cpp:67:12:67:65 | *call to getContiguousRangeOrCopy | provenance | | | bdlbb.cpp:67:12:67:65 | *call to getContiguousRangeOrCopy | bdlbb.cpp:68:7:68:8 | * ... | provenance | | -| bdlbb.cpp:67:72:67:75 | *blob | bdlbb.cpp:67:12:67:65 | *call to getContiguousRangeOrCopy | provenance | MaD:134 | +| bdlbb.cpp:67:72:67:75 | *blob | bdlbb.cpp:67:12:67:65 | *call to getContiguousRangeOrCopy | provenance | MaD:136 | | bdlbb.cpp:73:16:73:23 | call to source | bdlbb.cpp:75:48:75:51 | *call to data | provenance | TaintFunction | | bdlbb.cpp:75:37:75:40 | copy output argument | bdlbb.cpp:77:46:77:48 | *src | provenance | | -| bdlbb.cpp:75:48:75:51 | *call to data | bdlbb.cpp:75:37:75:40 | copy output argument | provenance | MaD:132 | +| bdlbb.cpp:75:48:75:51 | *call to data | bdlbb.cpp:75:37:75:40 | copy output argument | provenance | MaD:134 | | bdlbb.cpp:77:37:77:40 | copy output argument | bdlbb.cpp:79:42:79:44 | *dst | provenance | | -| bdlbb.cpp:77:46:77:48 | *src | bdlbb.cpp:77:37:77:40 | copy output argument | provenance | MaD:131 | +| bdlbb.cpp:77:46:77:48 | *src | bdlbb.cpp:77:37:77:40 | copy output argument | provenance | MaD:133 | | bdlbb.cpp:79:37:79:39 | copy output argument | bdlbb.cpp:80:7:80:10 | * ... | provenance | | -| bdlbb.cpp:79:42:79:44 | *dst | bdlbb.cpp:79:37:79:39 | copy output argument | provenance | MaD:133 | +| bdlbb.cpp:79:42:79:44 | *dst | bdlbb.cpp:79:37:79:39 | copy output argument | provenance | MaD:135 | | bmqa.cpp:87:19:87:26 | call to source | bmqa.cpp:88:36:88:76 | *call to data | provenance | TaintFunction | | bmqa.cpp:88:36:88:76 | *call to data | bmqa.cpp:90:2:90:4 | *msg | provenance | | -| bmqa.cpp:90:2:90:4 | *msg | bmqa.cpp:90:15:90:19 | getData output argument | provenance | MaD:136 | +| bmqa.cpp:90:2:90:4 | *msg | bmqa.cpp:90:15:90:19 | getData output argument | provenance | MaD:138 | | bmqa.cpp:90:15:90:19 | getData output argument | bmqa.cpp:92:42:92:45 | *blob | provenance | | | bmqa.cpp:92:37:92:39 | copy output argument | bmqa.cpp:93:7:93:10 | * ... | provenance | | -| bmqa.cpp:92:42:92:45 | *blob | bmqa.cpp:92:37:92:39 | copy output argument | provenance | MaD:133 | +| bmqa.cpp:92:42:92:45 | *blob | bmqa.cpp:92:37:92:39 | copy output argument | provenance | MaD:135 | | bmqa.cpp:97:19:97:26 | call to source | bmqa.cpp:98:43:98:88 | *call to data | provenance | TaintFunction | | bmqa.cpp:98:43:98:88 | *call to data | bmqa.cpp:99:42:99:46 | *event | provenance | | -| bmqa.cpp:99:42:99:46 | *event | bmqa.cpp:99:49:99:63 | call to messageIterator | provenance | MaD:141 | +| bmqa.cpp:99:42:99:46 | *event | bmqa.cpp:99:49:99:63 | call to messageIterator | provenance | MaD:143 | | bmqa.cpp:99:49:99:63 | call to messageIterator | bmqa.cpp:99:49:99:63 | call to messageIterator | provenance | | | bmqa.cpp:99:49:99:63 | call to messageIterator | bmqa.cpp:101:43:101:44 | *it | provenance | | -| bmqa.cpp:101:43:101:44 | *it | bmqa.cpp:101:53:101:55 | *call to message | provenance | MaD:142 | +| bmqa.cpp:101:43:101:44 | *it | bmqa.cpp:101:53:101:55 | *call to message | provenance | MaD:144 | | bmqa.cpp:101:53:101:55 | *call to message | bmqa.cpp:101:53:101:55 | *call to message | provenance | | | bmqa.cpp:101:53:101:55 | *call to message | bmqa.cpp:103:3:103:5 | *msg | provenance | | -| bmqa.cpp:103:3:103:5 | *msg | bmqa.cpp:103:15:103:19 | getData output argument | provenance | MaD:136 | +| bmqa.cpp:103:3:103:5 | *msg | bmqa.cpp:103:15:103:19 | getData output argument | provenance | MaD:138 | | bmqa.cpp:103:15:103:19 | getData output argument | bmqa.cpp:105:43:105:46 | *blob | provenance | | | bmqa.cpp:105:38:105:40 | copy output argument | bmqa.cpp:106:8:106:11 | * ... | provenance | | -| bmqa.cpp:105:43:105:46 | *blob | bmqa.cpp:105:38:105:40 | copy output argument | provenance | MaD:133 | +| bmqa.cpp:105:43:105:46 | *blob | bmqa.cpp:105:38:105:40 | copy output argument | provenance | MaD:135 | | bmqa.cpp:111:16:111:23 | call to source | bmqa.cpp:113:47:113:50 | *call to data | provenance | TaintFunction | | bmqa.cpp:113:37:113:39 | copy output argument | bmqa.cpp:115:17:115:19 | *& ... | provenance | | -| bmqa.cpp:113:47:113:50 | *call to data | bmqa.cpp:113:37:113:39 | copy output argument | provenance | MaD:132 | +| bmqa.cpp:113:47:113:50 | *call to data | bmqa.cpp:113:37:113:39 | copy output argument | provenance | MaD:134 | | bmqa.cpp:115:2:115:4 | setDataRef output argument | bmqa.cpp:117:2:117:4 | *msg | provenance | | -| bmqa.cpp:115:17:115:19 | *& ... | bmqa.cpp:115:2:115:4 | setDataRef output argument | provenance | MaD:139 | -| bmqa.cpp:117:2:117:4 | *msg | bmqa.cpp:117:14:117:17 | getData output argument | provenance | MaD:136 | +| bmqa.cpp:115:17:115:19 | *& ... | bmqa.cpp:115:2:115:4 | setDataRef output argument | provenance | MaD:141 | +| bmqa.cpp:117:2:117:4 | *msg | bmqa.cpp:117:14:117:17 | getData output argument | provenance | MaD:138 | | bmqa.cpp:117:14:117:17 | getData output argument | bmqa.cpp:119:42:119:44 | *out | provenance | | | bmqa.cpp:119:37:119:39 | copy output argument | bmqa.cpp:120:7:120:10 | * ... | provenance | | -| bmqa.cpp:119:42:119:44 | *out | bmqa.cpp:119:37:119:39 | copy output argument | provenance | MaD:133 | +| bmqa.cpp:119:42:119:44 | *out | bmqa.cpp:119:37:119:39 | copy output argument | provenance | MaD:135 | | bmqa.cpp:124:16:124:23 | call to source | bmqa.cpp:126:19:126:22 | *call to data | provenance | TaintFunction | | bmqa.cpp:126:2:126:4 | setDataRef output argument | bmqa.cpp:128:2:128:4 | *msg | provenance | | -| bmqa.cpp:126:19:126:22 | *call to data | bmqa.cpp:126:2:126:4 | setDataRef output argument | provenance | MaD:139 | -| bmqa.cpp:128:2:128:4 | *msg | bmqa.cpp:128:14:128:17 | getData output argument | provenance | MaD:136 | +| bmqa.cpp:126:19:126:22 | *call to data | bmqa.cpp:126:2:126:4 | setDataRef output argument | provenance | MaD:141 | +| bmqa.cpp:128:2:128:4 | *msg | bmqa.cpp:128:14:128:17 | getData output argument | provenance | MaD:138 | | bmqa.cpp:128:14:128:17 | getData output argument | bmqa.cpp:130:42:130:44 | *out | provenance | | | bmqa.cpp:130:37:130:39 | copy output argument | bmqa.cpp:131:7:131:10 | * ... | provenance | | -| bmqa.cpp:130:42:130:44 | *out | bmqa.cpp:130:37:130:39 | copy output argument | provenance | MaD:133 | +| bmqa.cpp:130:42:130:44 | *out | bmqa.cpp:130:37:130:39 | copy output argument | provenance | MaD:135 | | bmqa.cpp:135:16:135:23 | call to source | bmqa.cpp:137:16:137:19 | *call to data | provenance | TaintFunction | | bmqa.cpp:137:2:137:4 | setData output argument | bmqa.cpp:139:2:139:4 | *msg | provenance | | -| bmqa.cpp:137:16:137:19 | *call to data | bmqa.cpp:137:2:137:4 | setData output argument | provenance | MaD:138 | -| bmqa.cpp:139:2:139:4 | *msg | bmqa.cpp:139:14:139:17 | getData output argument | provenance | MaD:136 | +| bmqa.cpp:137:16:137:19 | *call to data | bmqa.cpp:137:2:137:4 | setData output argument | provenance | MaD:140 | +| bmqa.cpp:139:2:139:4 | *msg | bmqa.cpp:139:14:139:17 | getData output argument | provenance | MaD:138 | | bmqa.cpp:139:14:139:17 | getData output argument | bmqa.cpp:141:42:141:44 | *out | provenance | | | bmqa.cpp:141:37:141:39 | copy output argument | bmqa.cpp:142:7:142:10 | * ... | provenance | | -| bmqa.cpp:141:42:141:44 | *out | bmqa.cpp:141:37:141:39 | copy output argument | provenance | MaD:133 | +| bmqa.cpp:141:42:141:44 | *out | bmqa.cpp:141:37:141:39 | copy output argument | provenance | MaD:135 | | bmqa.cpp:146:19:146:26 | call to source | bmqa.cpp:147:36:147:76 | *call to data | provenance | TaintFunction | | bmqa.cpp:147:36:147:76 | *call to data | bmqa.cpp:148:36:148:38 | *msg | provenance | | -| bmqa.cpp:148:36:148:38 | *msg | bmqa.cpp:148:41:148:45 | call to clone | provenance | MaD:135 | +| bmqa.cpp:148:36:148:38 | *msg | bmqa.cpp:148:41:148:45 | call to clone | provenance | MaD:137 | | bmqa.cpp:148:41:148:45 | call to clone | bmqa.cpp:148:41:148:45 | call to clone | provenance | | | bmqa.cpp:148:41:148:45 | call to clone | bmqa.cpp:150:2:150:5 | *copy | provenance | | -| bmqa.cpp:150:2:150:5 | *copy | bmqa.cpp:150:15:150:19 | getData output argument | provenance | MaD:136 | +| bmqa.cpp:150:2:150:5 | *copy | bmqa.cpp:150:15:150:19 | getData output argument | provenance | MaD:138 | | bmqa.cpp:150:15:150:19 | getData output argument | bmqa.cpp:152:42:152:45 | *blob | provenance | | | bmqa.cpp:152:37:152:39 | copy output argument | bmqa.cpp:153:7:153:10 | * ... | provenance | | -| bmqa.cpp:152:42:152:45 | *blob | bmqa.cpp:152:37:152:39 | copy output argument | provenance | MaD:133 | +| bmqa.cpp:152:42:152:45 | *blob | bmqa.cpp:152:37:152:39 | copy output argument | provenance | MaD:135 | | bmqa.cpp:157:19:157:26 | call to source | bmqa.cpp:158:36:158:76 | *call to data | provenance | TaintFunction | | bmqa.cpp:158:36:158:76 | *call to data | bmqa.cpp:160:2:160:4 | *msg | provenance | | -| bmqa.cpp:160:2:160:4 | *msg | bmqa.cpp:160:22:160:27 | loadProperties output argument | provenance | MaD:137 | +| bmqa.cpp:160:2:160:4 | *msg | bmqa.cpp:160:22:160:27 | loadProperties output argument | provenance | MaD:139 | | bmqa.cpp:160:22:160:27 | loadProperties output argument | bmqa.cpp:161:29:161:33 | *props | provenance | | -| bmqa.cpp:161:29:161:33 | *props | bmqa.cpp:161:54:161:61 | *call to getPropertyAsString | provenance | MaD:147 | +| bmqa.cpp:161:29:161:33 | *props | bmqa.cpp:161:54:161:61 | *call to getPropertyAsString | provenance | MaD:149 | | bmqa.cpp:161:54:161:61 | *call to getPropertyAsString | bmqa.cpp:161:54:161:61 | *call to getPropertyAsString | provenance | | | bmqa.cpp:161:54:161:61 | *call to getPropertyAsString | bmqa.cpp:162:7:162:21 | access to array | provenance | TaintFunction | | bmqa.cpp:166:19:166:26 | call to source | bmqa.cpp:167:36:167:76 | *call to data | provenance | TaintFunction | | bmqa.cpp:167:36:167:76 | *call to data | bmqa.cpp:169:2:169:4 | *msg | provenance | | -| bmqa.cpp:169:2:169:4 | *msg | bmqa.cpp:169:22:169:27 | loadProperties output argument | provenance | MaD:137 | +| bmqa.cpp:169:2:169:4 | *msg | bmqa.cpp:169:22:169:27 | loadProperties output argument | provenance | MaD:139 | | bmqa.cpp:169:22:169:27 | loadProperties output argument | bmqa.cpp:170:35:170:39 | *props | provenance | | -| bmqa.cpp:170:35:170:39 | *props | bmqa.cpp:170:60:170:67 | *call to getPropertyAsBinary [element] | provenance | MaD:144 | +| bmqa.cpp:170:35:170:39 | *props | bmqa.cpp:170:60:170:67 | *call to getPropertyAsBinary [element] | provenance | MaD:146 | | bmqa.cpp:170:60:170:67 | *call to getPropertyAsBinary [element] | bmqa.cpp:170:60:170:67 | *call to getPropertyAsBinary [element] | provenance | | | bmqa.cpp:170:60:170:67 | *call to getPropertyAsBinary [element] | bmqa.cpp:171:7:171:11 | *value [element] | provenance | | -| bmqa.cpp:171:7:171:11 | *value [element] | bmqa.cpp:171:7:171:21 | access to array | provenance | MaD:273 | +| bmqa.cpp:171:7:171:11 | *value [element] | bmqa.cpp:171:7:171:21 | access to array | provenance | MaD:267 | | bmqa.cpp:175:19:175:26 | call to source | bmqa.cpp:176:36:176:76 | *call to data | provenance | TaintFunction | | bmqa.cpp:176:36:176:76 | *call to data | bmqa.cpp:178:2:178:4 | *msg | provenance | | -| bmqa.cpp:178:2:178:4 | *msg | bmqa.cpp:178:22:178:27 | loadProperties output argument | provenance | MaD:137 | +| bmqa.cpp:178:2:178:4 | *msg | bmqa.cpp:178:22:178:27 | loadProperties output argument | provenance | MaD:139 | | bmqa.cpp:178:22:178:27 | loadProperties output argument | bmqa.cpp:179:35:179:39 | *props | provenance | | -| bmqa.cpp:179:35:179:39 | *props | bmqa.cpp:179:60:179:67 | *call to getPropertyAsBinary [element] | provenance | MaD:144 | +| bmqa.cpp:179:35:179:39 | *props | bmqa.cpp:179:60:179:67 | *call to getPropertyAsBinary [element] | provenance | MaD:146 | | bmqa.cpp:179:60:179:67 | *call to getPropertyAsBinary [element] | bmqa.cpp:179:60:179:67 | *call to getPropertyAsBinary [element] | provenance | | | bmqa.cpp:179:60:179:67 | *call to getPropertyAsBinary [element] | bmqa.cpp:180:7:180:11 | *value [element] | provenance | | -| bmqa.cpp:180:7:180:11 | *value [element] | bmqa.cpp:180:12:180:14 | call to operator[] | provenance | MaD:274 | +| bmqa.cpp:180:7:180:11 | *value [element] | bmqa.cpp:180:12:180:14 | call to operator[] | provenance | MaD:268 | | bmqa.cpp:184:19:184:26 | call to source | bmqa.cpp:185:36:185:76 | *call to data | provenance | TaintFunction | | bmqa.cpp:185:36:185:76 | *call to data | bmqa.cpp:187:2:187:4 | *msg | provenance | | -| bmqa.cpp:187:2:187:4 | *msg | bmqa.cpp:187:22:187:27 | loadProperties output argument | provenance | MaD:137 | +| bmqa.cpp:187:2:187:4 | *msg | bmqa.cpp:187:22:187:27 | loadProperties output argument | provenance | MaD:139 | | bmqa.cpp:187:22:187:27 | loadProperties output argument | bmqa.cpp:189:29:189:33 | *props | provenance | | -| bmqa.cpp:189:29:189:33 | *props | bmqa.cpp:189:56:189:69 | *call to getPropertyAsStringOr | provenance | MaD:149 | +| bmqa.cpp:189:29:189:33 | *props | bmqa.cpp:189:56:189:69 | *call to getPropertyAsStringOr | provenance | MaD:151 | | bmqa.cpp:189:56:189:69 | *call to getPropertyAsStringOr | bmqa.cpp:189:56:189:69 | *call to getPropertyAsStringOr | provenance | | | bmqa.cpp:189:56:189:69 | *call to getPropertyAsStringOr | bmqa.cpp:190:7:190:19 | * ... | provenance | TaintFunction | | bmqa.cpp:195:19:195:26 | call to source | bmqa.cpp:197:64:197:67 | *dflt | provenance | TaintFunction | | bmqa.cpp:197:56:197:69 | *call to getPropertyAsStringOr | bmqa.cpp:197:56:197:69 | *call to getPropertyAsStringOr | provenance | | | bmqa.cpp:197:56:197:69 | *call to getPropertyAsStringOr | bmqa.cpp:198:7:198:19 | * ... | provenance | TaintFunction | -| bmqa.cpp:197:64:197:67 | *dflt | bmqa.cpp:197:56:197:69 | *call to getPropertyAsStringOr | provenance | MaD:148 | +| bmqa.cpp:197:64:197:67 | *dflt | bmqa.cpp:197:56:197:69 | *call to getPropertyAsStringOr | provenance | MaD:150 | | bmqa.cpp:202:19:202:26 | call to source | bmqa.cpp:203:36:203:76 | *call to data | provenance | TaintFunction | | bmqa.cpp:203:36:203:76 | *call to data | bmqa.cpp:205:2:205:4 | *msg | provenance | | -| bmqa.cpp:205:2:205:4 | *msg | bmqa.cpp:205:22:205:27 | loadProperties output argument | provenance | MaD:137 | +| bmqa.cpp:205:2:205:4 | *msg | bmqa.cpp:205:22:205:27 | loadProperties output argument | provenance | MaD:139 | | bmqa.cpp:205:22:205:27 | loadProperties output argument | bmqa.cpp:207:35:207:39 | *props | provenance | | -| bmqa.cpp:207:35:207:39 | *props | bmqa.cpp:207:62:207:75 | *call to getPropertyAsBinaryOr [element] | provenance | MaD:146 | +| bmqa.cpp:207:35:207:39 | *props | bmqa.cpp:207:62:207:75 | *call to getPropertyAsBinaryOr [element] | provenance | MaD:148 | | bmqa.cpp:207:62:207:75 | *call to getPropertyAsBinaryOr [element] | bmqa.cpp:207:62:207:75 | *call to getPropertyAsBinaryOr [element] | provenance | | | bmqa.cpp:207:62:207:75 | *call to getPropertyAsBinaryOr [element] | bmqa.cpp:208:8:208:12 | *value [element] | provenance | | -| bmqa.cpp:208:8:208:12 | *value [element] | bmqa.cpp:208:7:208:19 | * ... | provenance | MaD:273 | +| bmqa.cpp:208:8:208:12 | *value [element] | bmqa.cpp:208:7:208:19 | * ... | provenance | MaD:267 | | bmqa.cpp:212:11:212:19 | * ... | bmqa.cpp:214:17:214:17 | *c | provenance | | | bmqa.cpp:212:12:212:17 | call to source | bmqa.cpp:212:11:212:19 | * ... | provenance | | | bmqa.cpp:214:2:214:5 | push_back output argument [element] | bmqa.cpp:216:70:216:73 | *dflt [element] | provenance | | -| bmqa.cpp:214:17:214:17 | *c | bmqa.cpp:214:2:214:5 | push_back output argument [element] | provenance | MaD:275 | +| bmqa.cpp:214:17:214:17 | *c | bmqa.cpp:214:2:214:5 | push_back output argument [element] | provenance | MaD:269 | | bmqa.cpp:216:62:216:75 | *call to getPropertyAsBinaryOr [element] | bmqa.cpp:216:62:216:75 | *call to getPropertyAsBinaryOr [element] | provenance | | | bmqa.cpp:216:62:216:75 | *call to getPropertyAsBinaryOr [element] | bmqa.cpp:217:8:217:12 | *value [element] | provenance | | -| bmqa.cpp:216:70:216:73 | *dflt [element] | bmqa.cpp:216:62:216:75 | *call to getPropertyAsBinaryOr [element] | provenance | MaD:145 | -| bmqa.cpp:217:8:217:12 | *value [element] | bmqa.cpp:217:7:217:19 | * ... | provenance | MaD:273 | +| bmqa.cpp:216:70:216:73 | *dflt [element] | bmqa.cpp:216:62:216:75 | *call to getPropertyAsBinaryOr [element] | provenance | MaD:147 | +| bmqa.cpp:217:8:217:12 | *value [element] | bmqa.cpp:217:7:217:19 | * ... | provenance | MaD:267 | | bmqa.cpp:229:16:229:23 | call to source | bmqa.cpp:231:49:231:52 | *call to data | provenance | TaintFunction | | bmqa.cpp:231:37:231:41 | copy output argument | bmqa.cpp:233:17:233:20 | *blob | provenance | | -| bmqa.cpp:231:49:231:52 | *call to data | bmqa.cpp:231:37:231:41 | copy output argument | provenance | MaD:132 | +| bmqa.cpp:231:49:231:52 | *call to data | bmqa.cpp:231:37:231:41 | copy output argument | provenance | MaD:134 | | bmqa.cpp:233:2:233:6 | streamIn output argument | bmqa.cpp:234:8:234:12 | *props | provenance | | -| bmqa.cpp:233:17:233:20 | *blob | bmqa.cpp:233:2:233:6 | streamIn output argument | provenance | MaD:161 | -| bmqa.cpp:234:8:234:12 | *props | bmqa.cpp:234:33:234:40 | *call to getPropertyAsString | provenance | MaD:147 | +| bmqa.cpp:233:17:233:20 | *blob | bmqa.cpp:233:2:233:6 | streamIn output argument | provenance | MaD:163 | +| bmqa.cpp:234:8:234:12 | *props | bmqa.cpp:234:33:234:40 | *call to getPropertyAsString | provenance | MaD:149 | | bmqa.cpp:234:33:234:40 | *call to getPropertyAsString | bmqa.cpp:234:7:234:46 | * ... | provenance | TaintFunction | | bmqa.cpp:238:16:238:23 | call to source | bmqa.cpp:240:49:240:52 | *call to data | provenance | TaintFunction | | bmqa.cpp:240:37:240:41 | copy output argument | bmqa.cpp:242:14:242:17 | *blob | provenance | | -| bmqa.cpp:240:49:240:52 | *call to data | bmqa.cpp:240:37:240:41 | copy output argument | provenance | MaD:132 | +| bmqa.cpp:240:49:240:52 | *call to data | bmqa.cpp:240:37:240:41 | copy output argument | provenance | MaD:134 | | bmqa.cpp:242:2:242:3 | streamIn output argument | bmqa.cpp:244:23:244:25 | *& ... | provenance | | -| bmqa.cpp:242:14:242:17 | *blob | bmqa.cpp:242:2:242:3 | streamIn output argument | provenance | MaD:161 | +| bmqa.cpp:242:14:242:17 | *blob | bmqa.cpp:242:2:242:3 | streamIn output argument | provenance | MaD:163 | | bmqa.cpp:244:2:244:4 | setPropertiesRef output argument | bmqa.cpp:246:2:246:4 | *msg | provenance | | -| bmqa.cpp:244:23:244:25 | *& ... | bmqa.cpp:244:2:244:4 | setPropertiesRef output argument | provenance | MaD:140 | -| bmqa.cpp:246:2:246:4 | *msg | bmqa.cpp:246:21:246:24 | loadProperties output argument | provenance | MaD:137 | +| bmqa.cpp:244:23:244:25 | *& ... | bmqa.cpp:244:2:244:4 | setPropertiesRef output argument | provenance | MaD:142 | +| bmqa.cpp:246:2:246:4 | *msg | bmqa.cpp:246:21:246:24 | loadProperties output argument | provenance | MaD:139 | | bmqa.cpp:246:21:246:24 | loadProperties output argument | bmqa.cpp:247:8:247:10 | *out | provenance | | -| bmqa.cpp:247:8:247:10 | *out | bmqa.cpp:247:31:247:38 | *call to getPropertyAsString | provenance | MaD:147 | +| bmqa.cpp:247:8:247:10 | *out | bmqa.cpp:247:31:247:38 | *call to getPropertyAsString | provenance | MaD:149 | | bmqa.cpp:247:31:247:38 | *call to getPropertyAsString | bmqa.cpp:247:7:247:44 | * ... | provenance | TaintFunction | | bmqa.cpp:251:19:251:26 | call to source | bmqa.cpp:252:36:252:76 | *call to data | provenance | TaintFunction | | bmqa.cpp:252:36:252:76 | *call to data | bmqa.cpp:254:2:254:4 | *msg | provenance | | -| bmqa.cpp:254:2:254:4 | *msg | bmqa.cpp:254:22:254:27 | loadProperties output argument | provenance | MaD:137 | +| bmqa.cpp:254:2:254:4 | *msg | bmqa.cpp:254:22:254:27 | loadProperties output argument | provenance | MaD:139 | | bmqa.cpp:254:22:254:27 | loadProperties output argument | bmqa.cpp:256:41:256:45 | *props | provenance | | -| bmqa.cpp:256:41:256:45 | *props | bmqa.cpp:256:56:256:66 | *call to streamOut | provenance | MaD:162 | +| bmqa.cpp:256:41:256:45 | *props | bmqa.cpp:256:56:256:66 | *call to streamOut | provenance | MaD:164 | | bmqa.cpp:256:56:256:66 | *call to streamOut | bmqa.cpp:256:56:256:66 | *call to streamOut | provenance | | | bmqa.cpp:256:56:256:66 | *call to streamOut | bmqa.cpp:258:42:258:45 | *blob | provenance | | | bmqa.cpp:258:37:258:39 | copy output argument | bmqa.cpp:259:7:259:10 | * ... | provenance | | -| bmqa.cpp:258:42:258:45 | *blob | bmqa.cpp:258:37:258:39 | copy output argument | provenance | MaD:133 | +| bmqa.cpp:258:42:258:45 | *blob | bmqa.cpp:258:37:258:39 | copy output argument | provenance | MaD:135 | | bmqa.cpp:263:19:263:26 | call to source | bmqa.cpp:264:36:264:76 | *call to data | provenance | TaintFunction | | bmqa.cpp:264:36:264:76 | *call to data | bmqa.cpp:266:2:266:4 | *msg | provenance | | -| bmqa.cpp:266:2:266:4 | *msg | bmqa.cpp:266:22:266:27 | loadProperties output argument | provenance | MaD:137 | +| bmqa.cpp:266:2:266:4 | *msg | bmqa.cpp:266:22:266:27 | loadProperties output argument | provenance | MaD:139 | | bmqa.cpp:266:22:266:27 | loadProperties output argument | bmqa.cpp:267:44:267:48 | *props | provenance | | | bmqa.cpp:266:22:266:27 | loadProperties output argument | bmqa.cpp:268:8:268:11 | *copy | provenance | DataFlowFunction | | bmqa.cpp:266:22:266:27 | loadProperties output argument | bmqa.cpp:268:8:268:11 | *copy | provenance | TaintFunction | | bmqa.cpp:267:39:267:42 | call to MessageProperties | bmqa.cpp:268:8:268:11 | *copy | provenance | | -| bmqa.cpp:267:44:267:48 | *props | bmqa.cpp:267:39:267:42 | call to MessageProperties | provenance | MaD:143 | -| bmqa.cpp:268:8:268:11 | *copy | bmqa.cpp:268:32:268:39 | *call to getPropertyAsString | provenance | MaD:147 | +| bmqa.cpp:267:44:267:48 | *props | bmqa.cpp:267:39:267:42 | call to MessageProperties | provenance | MaD:145 | +| bmqa.cpp:268:8:268:11 | *copy | bmqa.cpp:268:32:268:39 | *call to getPropertyAsString | provenance | MaD:149 | | bmqa.cpp:268:32:268:39 | *call to getPropertyAsString | bmqa.cpp:268:7:268:45 | * ... | provenance | TaintFunction | | bmqa.cpp:272:19:272:26 | call to source | bmqa.cpp:273:36:273:76 | *call to data | provenance | TaintFunction | | bmqa.cpp:273:36:273:76 | *call to data | bmqa.cpp:275:2:275:4 | *msg | provenance | | -| bmqa.cpp:275:2:275:4 | *msg | bmqa.cpp:275:22:275:27 | loadProperties output argument | provenance | MaD:137 | +| bmqa.cpp:275:2:275:4 | *msg | bmqa.cpp:275:22:275:27 | loadProperties output argument | provenance | MaD:139 | | bmqa.cpp:275:22:275:27 | loadProperties output argument | bmqa.cpp:277:9:277:13 | *props | provenance | | | bmqa.cpp:275:22:275:27 | loadProperties output argument | bmqa.cpp:278:8:278:11 | *copy | provenance | TaintFunction | | bmqa.cpp:277:2:277:5 | operator= output argument | bmqa.cpp:278:8:278:11 | *copy | provenance | | -| bmqa.cpp:277:9:277:13 | *props | bmqa.cpp:277:2:277:5 | operator= output argument | provenance | MaD:150 | -| bmqa.cpp:278:8:278:11 | *copy | bmqa.cpp:278:32:278:39 | *call to getPropertyAsString | provenance | MaD:147 | +| bmqa.cpp:277:9:277:13 | *props | bmqa.cpp:277:2:277:5 | operator= output argument | provenance | MaD:152 | +| bmqa.cpp:278:8:278:11 | *copy | bmqa.cpp:278:32:278:39 | *call to getPropertyAsString | provenance | MaD:149 | | bmqa.cpp:278:32:278:39 | *call to getPropertyAsString | bmqa.cpp:278:7:278:45 | * ... | provenance | TaintFunction | | bmqa.cpp:282:19:282:26 | call to source | bmqa.cpp:283:36:283:76 | *call to data | provenance | TaintFunction | | bmqa.cpp:283:36:283:76 | *call to data | bmqa.cpp:285:2:285:4 | *msg | provenance | | -| bmqa.cpp:285:2:285:4 | *msg | bmqa.cpp:285:22:285:27 | loadProperties output argument | provenance | MaD:137 | +| bmqa.cpp:285:2:285:4 | *msg | bmqa.cpp:285:22:285:27 | loadProperties output argument | provenance | MaD:139 | | bmqa.cpp:285:22:285:27 | loadProperties output argument | bmqa.cpp:287:8:287:21 | *call to operator= | provenance | TaintFunction | | bmqa.cpp:285:22:285:27 | loadProperties output argument | bmqa.cpp:287:16:287:20 | *props | provenance | | -| bmqa.cpp:287:8:287:21 | *call to operator= | bmqa.cpp:287:42:287:49 | *call to getPropertyAsString | provenance | MaD:147 | -| bmqa.cpp:287:16:287:20 | *props | bmqa.cpp:287:8:287:21 | *call to operator= | provenance | MaD:151 | +| bmqa.cpp:287:8:287:21 | *call to operator= | bmqa.cpp:287:42:287:49 | *call to getPropertyAsString | provenance | MaD:149 | +| bmqa.cpp:287:16:287:20 | *props | bmqa.cpp:287:8:287:21 | *call to operator= | provenance | MaD:153 | | bmqa.cpp:287:42:287:49 | *call to getPropertyAsString | bmqa.cpp:287:7:287:55 | * ... | provenance | TaintFunction | | bmqa.cpp:291:19:291:26 | call to source | bmqa.cpp:292:28:292:58 | *call to data | provenance | TaintFunction | | bmqa.cpp:292:28:292:58 | *call to data | bmqa.cpp:294:35:294:40 | * ... | provenance | | | bmqa.cpp:294:2:294:6 | setPropertyAsString output argument | bmqa.cpp:295:8:295:12 | *props | provenance | | -| bmqa.cpp:294:35:294:40 | * ... | bmqa.cpp:294:2:294:6 | setPropertyAsString output argument | provenance | MaD:160 | -| bmqa.cpp:295:8:295:12 | *props | bmqa.cpp:295:33:295:40 | *call to getPropertyAsString | provenance | MaD:147 | +| bmqa.cpp:294:35:294:40 | * ... | bmqa.cpp:294:2:294:6 | setPropertyAsString output argument | provenance | MaD:162 | +| bmqa.cpp:295:8:295:12 | *props | bmqa.cpp:295:33:295:40 | *call to getPropertyAsString | provenance | MaD:149 | | bmqa.cpp:295:33:295:40 | *call to getPropertyAsString | bmqa.cpp:295:7:295:46 | * ... | provenance | TaintFunction | | bmqa.cpp:299:25:299:32 | call to source | bmqa.cpp:301:35:301:39 | value | provenance | TaintFunction | | bmqa.cpp:301:2:301:6 | setPropertyAsString output argument | bmqa.cpp:302:8:302:12 | *props | provenance | | -| bmqa.cpp:301:35:301:39 | value | bmqa.cpp:301:2:301:6 | setPropertyAsString output argument | provenance | MaD:160 | -| bmqa.cpp:302:8:302:12 | *props | bmqa.cpp:302:33:302:40 | *call to getPropertyAsString | provenance | MaD:147 | +| bmqa.cpp:301:35:301:39 | value | bmqa.cpp:301:2:301:6 | setPropertyAsString output argument | provenance | MaD:162 | +| bmqa.cpp:302:8:302:12 | *props | bmqa.cpp:302:33:302:40 | *call to getPropertyAsString | provenance | MaD:149 | | bmqa.cpp:302:33:302:40 | *call to getPropertyAsString | bmqa.cpp:302:7:302:46 | * ... | provenance | TaintFunction | | bmqa.cpp:306:19:306:26 | call to source | bmqa.cpp:307:33:307:68 | *call to data | provenance | TaintFunction | | bmqa.cpp:307:33:307:68 | *call to data | bmqa.cpp:309:35:309:40 | * ... | provenance | | | bmqa.cpp:309:2:309:6 | setPropertyAsBinary output argument | bmqa.cpp:310:8:310:12 | *props | provenance | | -| bmqa.cpp:309:35:309:40 | * ... | bmqa.cpp:309:2:309:6 | setPropertyAsBinary output argument | provenance | MaD:153 | -| bmqa.cpp:310:8:310:12 | *props | bmqa.cpp:310:33:310:40 | *call to getPropertyAsBinary [element] | provenance | MaD:144 | -| bmqa.cpp:310:33:310:40 | *call to getPropertyAsBinary [element] | bmqa.cpp:310:7:310:46 | * ... | provenance | MaD:273 | +| bmqa.cpp:309:35:309:40 | * ... | bmqa.cpp:309:2:309:6 | setPropertyAsBinary output argument | provenance | MaD:155 | +| bmqa.cpp:310:8:310:12 | *props | bmqa.cpp:310:33:310:40 | *call to getPropertyAsBinary [element] | provenance | MaD:146 | +| bmqa.cpp:310:33:310:40 | *call to getPropertyAsBinary [element] | bmqa.cpp:310:7:310:46 | * ... | provenance | MaD:267 | | bmqa.cpp:315:24:315:31 | call to source | bmqa.cpp:317:26:317:29 | name | provenance | TaintFunction | | bmqa.cpp:317:2:317:6 | setPropertyAsBool output argument | bmqa.cpp:318:50:318:55 | *& ... | provenance | | -| bmqa.cpp:317:26:317:29 | name | bmqa.cpp:317:2:317:6 | setPropertyAsBool output argument | provenance | MaD:154 | +| bmqa.cpp:317:26:317:29 | name | bmqa.cpp:317:2:317:6 | setPropertyAsBool output argument | provenance | MaD:156 | | bmqa.cpp:318:47:318:48 | call to MessagePropertiesIterator | bmqa.cpp:319:8:319:9 | *it | provenance | | -| bmqa.cpp:318:50:318:55 | *& ... | bmqa.cpp:318:47:318:48 | call to MessagePropertiesIterator | provenance | MaD:163 | -| bmqa.cpp:319:8:319:9 | *it | bmqa.cpp:319:15:319:17 | *call to name | provenance | MaD:166 | +| bmqa.cpp:318:50:318:55 | *& ... | bmqa.cpp:318:47:318:48 | call to MessagePropertiesIterator | provenance | MaD:165 | +| bmqa.cpp:319:8:319:9 | *it | bmqa.cpp:319:15:319:17 | *call to name | provenance | MaD:168 | | bmqa.cpp:319:15:319:17 | *call to name | bmqa.cpp:319:7:319:23 | * ... | provenance | TaintFunction | | bmqa.cpp:323:24:323:31 | call to source | bmqa.cpp:325:26:325:29 | name | provenance | TaintFunction | | bmqa.cpp:325:2:325:6 | setPropertyAsChar output argument | bmqa.cpp:326:50:326:55 | *& ... | provenance | | -| bmqa.cpp:325:26:325:29 | name | bmqa.cpp:325:2:325:6 | setPropertyAsChar output argument | provenance | MaD:155 | +| bmqa.cpp:325:26:325:29 | name | bmqa.cpp:325:2:325:6 | setPropertyAsChar output argument | provenance | MaD:157 | | bmqa.cpp:326:47:326:48 | call to MessagePropertiesIterator | bmqa.cpp:327:8:327:9 | *it | provenance | | -| bmqa.cpp:326:50:326:55 | *& ... | bmqa.cpp:326:47:326:48 | call to MessagePropertiesIterator | provenance | MaD:163 | -| bmqa.cpp:327:8:327:9 | *it | bmqa.cpp:327:15:327:17 | *call to name | provenance | MaD:166 | +| bmqa.cpp:326:50:326:55 | *& ... | bmqa.cpp:326:47:326:48 | call to MessagePropertiesIterator | provenance | MaD:165 | +| bmqa.cpp:327:8:327:9 | *it | bmqa.cpp:327:15:327:17 | *call to name | provenance | MaD:168 | | bmqa.cpp:327:15:327:17 | *call to name | bmqa.cpp:327:7:327:23 | * ... | provenance | TaintFunction | | bmqa.cpp:331:24:331:31 | call to source | bmqa.cpp:333:27:333:30 | name | provenance | TaintFunction | | bmqa.cpp:333:2:333:6 | setPropertyAsShort output argument | bmqa.cpp:334:50:334:55 | *& ... | provenance | | -| bmqa.cpp:333:27:333:30 | name | bmqa.cpp:333:2:333:6 | setPropertyAsShort output argument | provenance | MaD:158 | +| bmqa.cpp:333:27:333:30 | name | bmqa.cpp:333:2:333:6 | setPropertyAsShort output argument | provenance | MaD:160 | | bmqa.cpp:334:47:334:48 | call to MessagePropertiesIterator | bmqa.cpp:335:8:335:9 | *it | provenance | | -| bmqa.cpp:334:50:334:55 | *& ... | bmqa.cpp:334:47:334:48 | call to MessagePropertiesIterator | provenance | MaD:163 | -| bmqa.cpp:335:8:335:9 | *it | bmqa.cpp:335:15:335:17 | *call to name | provenance | MaD:166 | +| bmqa.cpp:334:50:334:55 | *& ... | bmqa.cpp:334:47:334:48 | call to MessagePropertiesIterator | provenance | MaD:165 | +| bmqa.cpp:335:8:335:9 | *it | bmqa.cpp:335:15:335:17 | *call to name | provenance | MaD:168 | | bmqa.cpp:335:15:335:17 | *call to name | bmqa.cpp:335:7:335:23 | * ... | provenance | TaintFunction | | bmqa.cpp:339:24:339:31 | call to source | bmqa.cpp:341:27:341:30 | name | provenance | TaintFunction | | bmqa.cpp:341:2:341:6 | setPropertyAsInt32 output argument | bmqa.cpp:342:50:342:55 | *& ... | provenance | | -| bmqa.cpp:341:27:341:30 | name | bmqa.cpp:341:2:341:6 | setPropertyAsInt32 output argument | provenance | MaD:156 | +| bmqa.cpp:341:27:341:30 | name | bmqa.cpp:341:2:341:6 | setPropertyAsInt32 output argument | provenance | MaD:158 | | bmqa.cpp:342:47:342:48 | call to MessagePropertiesIterator | bmqa.cpp:343:8:343:9 | *it | provenance | | -| bmqa.cpp:342:50:342:55 | *& ... | bmqa.cpp:342:47:342:48 | call to MessagePropertiesIterator | provenance | MaD:163 | -| bmqa.cpp:343:8:343:9 | *it | bmqa.cpp:343:15:343:17 | *call to name | provenance | MaD:166 | +| bmqa.cpp:342:50:342:55 | *& ... | bmqa.cpp:342:47:342:48 | call to MessagePropertiesIterator | provenance | MaD:165 | +| bmqa.cpp:343:8:343:9 | *it | bmqa.cpp:343:15:343:17 | *call to name | provenance | MaD:168 | | bmqa.cpp:343:15:343:17 | *call to name | bmqa.cpp:343:7:343:23 | * ... | provenance | TaintFunction | | bmqa.cpp:347:24:347:31 | call to source | bmqa.cpp:349:27:349:30 | name | provenance | TaintFunction | | bmqa.cpp:349:2:349:6 | setPropertyAsInt64 output argument | bmqa.cpp:350:50:350:55 | *& ... | provenance | | -| bmqa.cpp:349:27:349:30 | name | bmqa.cpp:349:2:349:6 | setPropertyAsInt64 output argument | provenance | MaD:157 | +| bmqa.cpp:349:27:349:30 | name | bmqa.cpp:349:2:349:6 | setPropertyAsInt64 output argument | provenance | MaD:159 | | bmqa.cpp:350:47:350:48 | call to MessagePropertiesIterator | bmqa.cpp:351:8:351:9 | *it | provenance | | -| bmqa.cpp:350:50:350:55 | *& ... | bmqa.cpp:350:47:350:48 | call to MessagePropertiesIterator | provenance | MaD:163 | -| bmqa.cpp:351:8:351:9 | *it | bmqa.cpp:351:15:351:17 | *call to name | provenance | MaD:166 | +| bmqa.cpp:350:50:350:55 | *& ... | bmqa.cpp:350:47:350:48 | call to MessagePropertiesIterator | provenance | MaD:165 | +| bmqa.cpp:351:8:351:9 | *it | bmqa.cpp:351:15:351:17 | *call to name | provenance | MaD:168 | | bmqa.cpp:351:15:351:17 | *call to name | bmqa.cpp:351:7:351:23 | * ... | provenance | TaintFunction | | bmqa.cpp:355:24:355:31 | call to source | bmqa.cpp:357:28:357:31 | name | provenance | TaintFunction | | bmqa.cpp:357:2:357:6 | setPropertyAsString output argument | bmqa.cpp:358:50:358:55 | *& ... | provenance | | -| bmqa.cpp:357:28:357:31 | name | bmqa.cpp:357:2:357:6 | setPropertyAsString output argument | provenance | MaD:159 | +| bmqa.cpp:357:28:357:31 | name | bmqa.cpp:357:2:357:6 | setPropertyAsString output argument | provenance | MaD:161 | | bmqa.cpp:358:47:358:48 | call to MessagePropertiesIterator | bmqa.cpp:359:8:359:9 | *it | provenance | | -| bmqa.cpp:358:50:358:55 | *& ... | bmqa.cpp:358:47:358:48 | call to MessagePropertiesIterator | provenance | MaD:163 | -| bmqa.cpp:359:8:359:9 | *it | bmqa.cpp:359:15:359:17 | *call to name | provenance | MaD:166 | +| bmqa.cpp:358:50:358:55 | *& ... | bmqa.cpp:358:47:358:48 | call to MessagePropertiesIterator | provenance | MaD:165 | +| bmqa.cpp:359:8:359:9 | *it | bmqa.cpp:359:15:359:17 | *call to name | provenance | MaD:168 | | bmqa.cpp:359:15:359:17 | *call to name | bmqa.cpp:359:7:359:23 | * ... | provenance | TaintFunction | | bmqa.cpp:363:24:363:31 | call to source | bmqa.cpp:365:28:365:31 | name | provenance | TaintFunction | | bmqa.cpp:365:2:365:6 | setPropertyAsBinary output argument | bmqa.cpp:366:50:366:55 | *& ... | provenance | | -| bmqa.cpp:365:28:365:31 | name | bmqa.cpp:365:2:365:6 | setPropertyAsBinary output argument | provenance | MaD:152 | +| bmqa.cpp:365:28:365:31 | name | bmqa.cpp:365:2:365:6 | setPropertyAsBinary output argument | provenance | MaD:154 | | bmqa.cpp:366:47:366:48 | call to MessagePropertiesIterator | bmqa.cpp:367:8:367:9 | *it | provenance | | -| bmqa.cpp:366:50:366:55 | *& ... | bmqa.cpp:366:47:366:48 | call to MessagePropertiesIterator | provenance | MaD:163 | -| bmqa.cpp:367:8:367:9 | *it | bmqa.cpp:367:15:367:17 | *call to name | provenance | MaD:166 | +| bmqa.cpp:366:50:366:55 | *& ... | bmqa.cpp:366:47:366:48 | call to MessagePropertiesIterator | provenance | MaD:165 | +| bmqa.cpp:367:8:367:9 | *it | bmqa.cpp:367:15:367:17 | *call to name | provenance | MaD:168 | | bmqa.cpp:367:15:367:17 | *call to name | bmqa.cpp:367:7:367:23 | * ... | provenance | TaintFunction | | bmqa.cpp:371:19:371:26 | call to source | bmqa.cpp:372:36:372:76 | *call to data | provenance | TaintFunction | | bmqa.cpp:372:36:372:76 | *call to data | bmqa.cpp:374:2:374:4 | *msg | provenance | | -| bmqa.cpp:374:2:374:4 | *msg | bmqa.cpp:374:22:374:27 | loadProperties output argument | provenance | MaD:137 | +| bmqa.cpp:374:2:374:4 | *msg | bmqa.cpp:374:22:374:27 | loadProperties output argument | provenance | MaD:139 | | bmqa.cpp:374:22:374:27 | loadProperties output argument | bmqa.cpp:375:50:375:55 | *& ... | provenance | | | bmqa.cpp:375:47:375:48 | call to MessagePropertiesIterator | bmqa.cpp:377:9:377:10 | *it | provenance | | | bmqa.cpp:375:47:375:48 | call to MessagePropertiesIterator | bmqa.cpp:378:9:378:10 | *it | provenance | | | bmqa.cpp:375:47:375:48 | call to MessagePropertiesIterator | bmqa.cpp:379:9:379:10 | *it | provenance | | -| bmqa.cpp:375:50:375:55 | *& ... | bmqa.cpp:375:47:375:48 | call to MessagePropertiesIterator | provenance | MaD:163 | -| bmqa.cpp:377:9:377:10 | *it | bmqa.cpp:377:16:377:18 | *call to name | provenance | MaD:166 | +| bmqa.cpp:375:50:375:55 | *& ... | bmqa.cpp:375:47:375:48 | call to MessagePropertiesIterator | provenance | MaD:165 | +| bmqa.cpp:377:9:377:10 | *it | bmqa.cpp:377:16:377:18 | *call to name | provenance | MaD:168 | | bmqa.cpp:377:16:377:18 | *call to name | bmqa.cpp:377:8:377:24 | * ... | provenance | TaintFunction | -| bmqa.cpp:378:9:378:10 | *it | bmqa.cpp:378:23:378:25 | *call to getAsString | provenance | MaD:165 | +| bmqa.cpp:378:9:378:10 | *it | bmqa.cpp:378:23:378:25 | *call to getAsString | provenance | MaD:167 | | bmqa.cpp:378:23:378:25 | *call to getAsString | bmqa.cpp:378:8:378:31 | * ... | provenance | TaintFunction | -| bmqa.cpp:379:9:379:10 | *it | bmqa.cpp:379:23:379:25 | *call to getAsBinary [element] | provenance | MaD:164 | -| bmqa.cpp:379:23:379:25 | *call to getAsBinary [element] | bmqa.cpp:379:8:379:31 | * ... | provenance | MaD:273 | +| bmqa.cpp:379:9:379:10 | *it | bmqa.cpp:379:23:379:25 | *call to getAsBinary [element] | provenance | MaD:166 | +| bmqa.cpp:379:23:379:25 | *call to getAsBinary [element] | bmqa.cpp:379:8:379:31 | * ... | provenance | MaD:267 | | bmqa.cpp:385:19:385:26 | call to source | bmqa.cpp:386:36:386:76 | *call to data | provenance | TaintFunction | | bmqa.cpp:386:36:386:76 | *call to data | bmqa.cpp:388:2:388:4 | *msg | provenance | | -| bmqa.cpp:388:2:388:4 | *msg | bmqa.cpp:388:22:388:27 | loadProperties output argument | provenance | MaD:137 | +| bmqa.cpp:388:2:388:4 | *msg | bmqa.cpp:388:22:388:27 | loadProperties output argument | provenance | MaD:139 | | bmqa.cpp:388:22:388:27 | loadProperties output argument | bmqa.cpp:389:50:389:55 | *& ... | provenance | | | bmqa.cpp:389:47:389:48 | call to MessagePropertiesIterator | bmqa.cpp:391:9:391:10 | *it | provenance | | | bmqa.cpp:389:47:389:48 | call to MessagePropertiesIterator | bmqa.cpp:392:8:392:11 | *copy | provenance | TaintFunction | | bmqa.cpp:389:47:389:48 | call to MessagePropertiesIterator | bmqa.cpp:393:8:393:18 | *call to operator= | provenance | TaintFunction | | bmqa.cpp:389:47:389:48 | call to MessagePropertiesIterator | bmqa.cpp:393:16:393:17 | *it | provenance | | -| bmqa.cpp:389:50:389:55 | *& ... | bmqa.cpp:389:47:389:48 | call to MessagePropertiesIterator | provenance | MaD:163 | +| bmqa.cpp:389:50:389:55 | *& ... | bmqa.cpp:389:47:389:48 | call to MessagePropertiesIterator | provenance | MaD:165 | | bmqa.cpp:391:2:391:5 | operator= output argument | bmqa.cpp:392:8:392:11 | *copy | provenance | | -| bmqa.cpp:391:9:391:10 | *it | bmqa.cpp:391:2:391:5 | operator= output argument | provenance | MaD:167 | -| bmqa.cpp:392:8:392:11 | *copy | bmqa.cpp:392:24:392:26 | *call to getAsString | provenance | MaD:165 | +| bmqa.cpp:391:9:391:10 | *it | bmqa.cpp:391:2:391:5 | operator= output argument | provenance | MaD:169 | +| bmqa.cpp:392:8:392:11 | *copy | bmqa.cpp:392:24:392:26 | *call to getAsString | provenance | MaD:167 | | bmqa.cpp:392:24:392:26 | *call to getAsString | bmqa.cpp:392:7:392:32 | * ... | provenance | TaintFunction | -| bmqa.cpp:393:8:393:18 | *call to operator= | bmqa.cpp:393:24:393:26 | *call to name | provenance | MaD:166 | -| bmqa.cpp:393:16:393:17 | *it | bmqa.cpp:393:8:393:18 | *call to operator= | provenance | MaD:168 | +| bmqa.cpp:393:8:393:18 | *call to operator= | bmqa.cpp:393:24:393:26 | *call to name | provenance | MaD:168 | +| bmqa.cpp:393:16:393:17 | *it | bmqa.cpp:393:8:393:18 | *call to operator= | provenance | MaD:170 | | bmqa.cpp:393:24:393:26 | *call to name | bmqa.cpp:393:7:393:32 | * ... | provenance | TaintFunction | -| bslx.cpp:161:33:161:40 | call to source | bslx.cpp:162:46:162:49 | *call to data | provenance | TaintFunction | -| bslx.cpp:162:34:162:39 | call to ByteInStream | bslx.cpp:164:2:164:7 | *stream | provenance | | -| bslx.cpp:162:46:162:49 | *call to data | bslx.cpp:162:34:162:39 | call to ByteInStream | provenance | MaD:171 | -| bslx.cpp:164:2:164:7 | *stream | bslx.cpp:164:22:164:24 | getArrayInt8 output argument | provenance | MaD:181 | -| bslx.cpp:164:22:164:24 | getArrayInt8 output argument | bslx.cpp:165:7:165:10 | * ... | provenance | | -| bslx.cpp:169:33:169:40 | call to source | bslx.cpp:170:46:170:49 | *call to data | provenance | TaintFunction | -| bslx.cpp:170:34:170:39 | call to ByteInStream | bslx.cpp:172:2:172:7 | *stream | provenance | | -| bslx.cpp:170:46:170:49 | *call to data | bslx.cpp:170:34:170:39 | call to ByteInStream | provenance | MaD:171 | -| bslx.cpp:172:2:172:7 | *stream | bslx.cpp:172:19:172:21 | getString output argument | provenance | MaD:202 | -| bslx.cpp:172:19:172:21 | getString output argument | bslx.cpp:173:7:173:17 | * ... | provenance | TaintFunction | -| bslx.cpp:177:33:177:40 | call to source | bslx.cpp:178:46:178:49 | *call to data | provenance | TaintFunction | -| bslx.cpp:178:34:178:39 | call to ByteInStream | bslx.cpp:181:2:181:7 | *stream | provenance | | -| bslx.cpp:178:46:178:49 | *call to data | bslx.cpp:178:34:178:39 | call to ByteInStream | provenance | MaD:171 | -| bslx.cpp:181:2:181:7 | *stream | bslx.cpp:181:17:181:20 | *call to getInt32 | provenance | MaD:195 | -| bslx.cpp:181:17:181:20 | *call to getInt32 | bslx.cpp:181:31:181:33 | getString output argument | provenance | MaD:202 | -| bslx.cpp:181:31:181:33 | getString output argument | bslx.cpp:182:7:182:17 | * ... | provenance | TaintFunction | -| bslx.cpp:187:33:187:40 | call to source | bslx.cpp:188:20:188:23 | *call to data | provenance | TaintFunction | -| bslx.cpp:188:2:188:7 | reset output argument | bslx.cpp:190:2:190:7 | *stream | provenance | | -| bslx.cpp:188:20:188:23 | *call to data | bslx.cpp:188:2:188:7 | reset output argument | provenance | MaD:214 | -| bslx.cpp:190:2:190:7 | *stream | bslx.cpp:190:19:190:21 | getString output argument | provenance | MaD:202 | -| bslx.cpp:190:19:190:21 | getString output argument | bslx.cpp:191:7:191:17 | * ... | provenance | TaintFunction | -| bslx.cpp:195:33:195:40 | call to source | bslx.cpp:196:20:196:45 | *call to data | provenance | TaintFunction | -| bslx.cpp:196:20:196:45 | *call to data | bslx.cpp:197:57:197:58 | *sb | provenance | | -| bslx.cpp:196:20:196:45 | *call to data | bslx.cpp:199:2:199:7 | *stream | provenance | TaintFunction | -| bslx.cpp:197:50:197:55 | call to GenericInStream | bslx.cpp:199:2:199:7 | *stream | provenance | | -| bslx.cpp:197:57:197:58 | *sb | bslx.cpp:197:50:197:55 | call to GenericInStream | provenance | MaD:215 | -| bslx.cpp:199:2:199:7 | *stream | bslx.cpp:199:19:199:21 | getString output argument | provenance | MaD:245 | -| bslx.cpp:199:19:199:21 | getString output argument | bslx.cpp:200:7:200:17 | * ... | provenance | TaintFunction | -| bslx.cpp:213:33:213:40 | call to source | bslx.cpp:214:46:214:49 | *call to data | provenance | TaintFunction | -| bslx.cpp:214:34:214:39 | call to ByteInStream | bslx.cpp:216:53:216:58 | *stream | provenance | | -| bslx.cpp:214:46:214:49 | *call to data | bslx.cpp:214:34:214:39 | call to ByteInStream | provenance | MaD:171 | -| bslx.cpp:216:53:216:58 | *stream | bslx.cpp:216:61:216:63 | bdexStreamIn output argument | provenance | MaD:169 | -| bslx.cpp:216:61:216:63 | bdexStreamIn output argument | bslx.cpp:217:7:217:17 | * ... | provenance | TaintFunction | -| bslx.cpp:223:33:223:40 | call to source | bslx.cpp:224:46:224:49 | *call to data | provenance | TaintFunction | -| bslx.cpp:224:34:224:39 | call to ByteInStream | bslx.cpp:247:2:247:7 | *stream | provenance | | -| bslx.cpp:224:46:224:49 | *call to data | bslx.cpp:224:34:224:39 | call to ByteInStream | provenance | MaD:171 | -| bslx.cpp:247:2:247:7 | *stream | bslx.cpp:247:18:247:21 | *call to getLength | provenance | MaD:201 | -| bslx.cpp:247:18:247:21 | *call to getLength | bslx.cpp:247:32:247:35 | *call to getVersion | provenance | MaD:212 | -| bslx.cpp:247:32:247:35 | *call to getVersion | bslx.cpp:247:43:247:46 | *call to getInt8 | provenance | MaD:200 | -| bslx.cpp:247:43:247:46 | *call to getInt8 | bslx.cpp:247:55:247:59 | *call to getUint8 | provenance | MaD:211 | -| bslx.cpp:247:55:247:59 | *call to getUint8 | bslx.cpp:247:68:247:71 | *call to getInt16 | provenance | MaD:193 | -| bslx.cpp:247:68:247:71 | *call to getInt16 | bslx.cpp:247:81:247:85 | *call to getUint16 | provenance | MaD:204 | -| bslx.cpp:247:81:247:85 | *call to getUint16 | bslx.cpp:247:94:247:97 | *call to getInt24 | provenance | MaD:194 | -| bslx.cpp:247:94:247:97 | *call to getInt24 | bslx.cpp:247:107:247:111 | *call to getUint24 | provenance | MaD:205 | -| bslx.cpp:247:107:247:111 | *call to getUint24 | bslx.cpp:247:120:247:123 | *call to getInt32 | provenance | MaD:195 | -| bslx.cpp:247:120:247:123 | *call to getInt32 | bslx.cpp:247:133:247:137 | *call to getUint32 | provenance | MaD:206 | -| bslx.cpp:247:133:247:137 | *call to getUint32 | bslx.cpp:247:146:247:150 | *call to getInt40 | provenance | MaD:196 | -| bslx.cpp:247:146:247:150 | *call to getInt40 | bslx.cpp:247:160:247:165 | *call to getUint40 | provenance | MaD:207 | -| bslx.cpp:247:160:247:165 | *call to getUint40 | bslx.cpp:247:174:247:178 | *call to getInt48 | provenance | MaD:197 | -| bslx.cpp:247:174:247:178 | *call to getInt48 | bslx.cpp:247:188:247:193 | *call to getUint48 | provenance | MaD:208 | -| bslx.cpp:247:188:247:193 | *call to getUint48 | bslx.cpp:247:202:247:206 | *call to getInt56 | provenance | MaD:198 | -| bslx.cpp:247:202:247:206 | *call to getInt56 | bslx.cpp:247:216:247:221 | *call to getUint56 | provenance | MaD:209 | -| bslx.cpp:247:216:247:221 | *call to getUint56 | bslx.cpp:247:230:247:234 | *call to getInt64 | provenance | MaD:199 | -| bslx.cpp:247:230:247:234 | *call to getInt64 | bslx.cpp:247:244:247:249 | *call to getUint64 | provenance | MaD:210 | -| bslx.cpp:247:244:247:249 | *call to getUint64 | bslx.cpp:247:260:247:263 | *call to getFloat32 | provenance | MaD:191 | -| bslx.cpp:247:260:247:263 | *call to getFloat32 | bslx.cpp:247:274:247:277 | *call to getFloat64 | provenance | MaD:192 | -| bslx.cpp:247:274:247:277 | *call to getFloat64 | bslx.cpp:247:287:247:292 | *call to getString | provenance | MaD:203 | -| bslx.cpp:247:287:247:292 | *call to getString | bslx.cpp:247:305:247:315 | *call to getArrayInt8 | provenance | MaD:182 | -| bslx.cpp:247:305:247:315 | *call to getArrayInt8 | bslx.cpp:247:329:247:340 | *call to getArrayUint8 | provenance | MaD:190 | -| bslx.cpp:247:329:247:340 | *call to getArrayUint8 | bslx.cpp:247:354:247:364 | *call to getArrayInt16 | provenance | MaD:174 | -| bslx.cpp:247:354:247:364 | *call to getArrayInt16 | bslx.cpp:247:379:247:390 | *call to getArrayUint16 | provenance | MaD:183 | -| bslx.cpp:247:379:247:390 | *call to getArrayUint16 | bslx.cpp:247:404:247:414 | *call to getArrayInt24 | provenance | MaD:175 | -| bslx.cpp:247:404:247:414 | *call to getArrayInt24 | bslx.cpp:247:429:247:440 | *call to getArrayUint24 | provenance | MaD:184 | -| bslx.cpp:247:429:247:440 | *call to getArrayUint24 | bslx.cpp:247:454:247:464 | *call to getArrayInt32 | provenance | MaD:176 | -| bslx.cpp:247:454:247:464 | *call to getArrayInt32 | bslx.cpp:247:479:247:490 | *call to getArrayUint32 | provenance | MaD:185 | -| bslx.cpp:247:479:247:490 | *call to getArrayUint32 | bslx.cpp:247:504:247:515 | *call to getArrayInt40 | provenance | MaD:177 | -| bslx.cpp:247:504:247:515 | *call to getArrayInt40 | bslx.cpp:247:530:247:542 | *call to getArrayUint40 | provenance | MaD:186 | -| bslx.cpp:247:530:247:542 | *call to getArrayUint40 | bslx.cpp:247:556:247:567 | *call to getArrayInt48 | provenance | MaD:178 | -| bslx.cpp:247:556:247:567 | *call to getArrayInt48 | bslx.cpp:247:582:247:594 | *call to getArrayUint48 | provenance | MaD:187 | -| bslx.cpp:247:582:247:594 | *call to getArrayUint48 | bslx.cpp:247:608:247:619 | *call to getArrayInt56 | provenance | MaD:179 | -| bslx.cpp:247:608:247:619 | *call to getArrayInt56 | bslx.cpp:247:634:247:646 | *call to getArrayUint56 | provenance | MaD:188 | -| bslx.cpp:247:634:247:646 | *call to getArrayUint56 | bslx.cpp:247:660:247:671 | *call to getArrayInt64 | provenance | MaD:180 | -| bslx.cpp:247:660:247:671 | *call to getArrayInt64 | bslx.cpp:247:686:247:698 | *call to getArrayUint64 | provenance | MaD:189 | -| bslx.cpp:247:686:247:698 | *call to getArrayUint64 | bslx.cpp:247:714:247:724 | *call to getArrayFloat32 | provenance | MaD:172 | -| bslx.cpp:247:714:247:724 | *call to getArrayFloat32 | bslx.cpp:247:740:247:750 | *call to getArrayFloat64 | provenance | MaD:173 | -| bslx.cpp:247:740:247:750 | *call to getArrayFloat64 | bslx.cpp:247:761:247:763 | getString output argument | provenance | MaD:202 | -| bslx.cpp:247:761:247:763 | getString output argument | bslx.cpp:248:7:248:17 | * ... | provenance | TaintFunction | -| bslx.cpp:252:33:252:40 | call to source | bslx.cpp:253:20:253:45 | *call to data | provenance | TaintFunction | -| bslx.cpp:253:20:253:45 | *call to data | bslx.cpp:254:57:254:58 | *sb | provenance | | -| bslx.cpp:253:20:253:45 | *call to data | bslx.cpp:277:2:277:7 | *stream | provenance | TaintFunction | -| bslx.cpp:254:50:254:55 | call to GenericInStream | bslx.cpp:277:2:277:7 | *stream | provenance | | -| bslx.cpp:254:57:254:58 | *sb | bslx.cpp:254:50:254:55 | call to GenericInStream | provenance | MaD:215 | -| bslx.cpp:277:2:277:7 | *stream | bslx.cpp:277:18:277:21 | *call to getLength | provenance | MaD:244 | -| bslx.cpp:277:18:277:21 | *call to getLength | bslx.cpp:277:32:277:35 | *call to getVersion | provenance | MaD:255 | -| bslx.cpp:277:32:277:35 | *call to getVersion | bslx.cpp:277:43:277:46 | *call to getInt8 | provenance | MaD:243 | -| bslx.cpp:277:43:277:46 | *call to getInt8 | bslx.cpp:277:55:277:59 | *call to getUint8 | provenance | MaD:254 | -| bslx.cpp:277:55:277:59 | *call to getUint8 | bslx.cpp:277:68:277:71 | *call to getInt16 | provenance | MaD:236 | -| bslx.cpp:277:68:277:71 | *call to getInt16 | bslx.cpp:277:81:277:85 | *call to getUint16 | provenance | MaD:247 | -| bslx.cpp:277:81:277:85 | *call to getUint16 | bslx.cpp:277:94:277:97 | *call to getInt24 | provenance | MaD:237 | -| bslx.cpp:277:94:277:97 | *call to getInt24 | bslx.cpp:277:107:277:111 | *call to getUint24 | provenance | MaD:248 | -| bslx.cpp:277:107:277:111 | *call to getUint24 | bslx.cpp:277:120:277:123 | *call to getInt32 | provenance | MaD:238 | -| bslx.cpp:277:120:277:123 | *call to getInt32 | bslx.cpp:277:133:277:137 | *call to getUint32 | provenance | MaD:249 | -| bslx.cpp:277:133:277:137 | *call to getUint32 | bslx.cpp:277:146:277:150 | *call to getInt40 | provenance | MaD:239 | -| bslx.cpp:277:146:277:150 | *call to getInt40 | bslx.cpp:277:160:277:165 | *call to getUint40 | provenance | MaD:250 | -| bslx.cpp:277:160:277:165 | *call to getUint40 | bslx.cpp:277:174:277:178 | *call to getInt48 | provenance | MaD:240 | -| bslx.cpp:277:174:277:178 | *call to getInt48 | bslx.cpp:277:188:277:193 | *call to getUint48 | provenance | MaD:251 | -| bslx.cpp:277:188:277:193 | *call to getUint48 | bslx.cpp:277:202:277:206 | *call to getInt56 | provenance | MaD:241 | -| bslx.cpp:277:202:277:206 | *call to getInt56 | bslx.cpp:277:216:277:221 | *call to getUint56 | provenance | MaD:252 | -| bslx.cpp:277:216:277:221 | *call to getUint56 | bslx.cpp:277:230:277:234 | *call to getInt64 | provenance | MaD:242 | -| bslx.cpp:277:230:277:234 | *call to getInt64 | bslx.cpp:277:244:277:249 | *call to getUint64 | provenance | MaD:253 | -| bslx.cpp:277:244:277:249 | *call to getUint64 | bslx.cpp:277:260:277:263 | *call to getFloat32 | provenance | MaD:234 | -| bslx.cpp:277:260:277:263 | *call to getFloat32 | bslx.cpp:277:274:277:277 | *call to getFloat64 | provenance | MaD:235 | -| bslx.cpp:277:274:277:277 | *call to getFloat64 | bslx.cpp:277:287:277:292 | *call to getString | provenance | MaD:246 | -| bslx.cpp:277:287:277:292 | *call to getString | bslx.cpp:277:305:277:315 | *call to getArrayInt8 | provenance | MaD:225 | -| bslx.cpp:277:305:277:315 | *call to getArrayInt8 | bslx.cpp:277:329:277:340 | *call to getArrayUint8 | provenance | MaD:233 | -| bslx.cpp:277:329:277:340 | *call to getArrayUint8 | bslx.cpp:277:354:277:364 | *call to getArrayInt16 | provenance | MaD:218 | -| bslx.cpp:277:354:277:364 | *call to getArrayInt16 | bslx.cpp:277:379:277:390 | *call to getArrayUint16 | provenance | MaD:226 | -| bslx.cpp:277:379:277:390 | *call to getArrayUint16 | bslx.cpp:277:404:277:414 | *call to getArrayInt24 | provenance | MaD:219 | -| bslx.cpp:277:404:277:414 | *call to getArrayInt24 | bslx.cpp:277:429:277:440 | *call to getArrayUint24 | provenance | MaD:227 | -| bslx.cpp:277:429:277:440 | *call to getArrayUint24 | bslx.cpp:277:454:277:464 | *call to getArrayInt32 | provenance | MaD:220 | -| bslx.cpp:277:454:277:464 | *call to getArrayInt32 | bslx.cpp:277:479:277:490 | *call to getArrayUint32 | provenance | MaD:228 | -| bslx.cpp:277:479:277:490 | *call to getArrayUint32 | bslx.cpp:277:504:277:515 | *call to getArrayInt40 | provenance | MaD:221 | -| bslx.cpp:277:504:277:515 | *call to getArrayInt40 | bslx.cpp:277:530:277:542 | *call to getArrayUint40 | provenance | MaD:229 | -| bslx.cpp:277:530:277:542 | *call to getArrayUint40 | bslx.cpp:277:556:277:567 | *call to getArrayInt48 | provenance | MaD:222 | -| bslx.cpp:277:556:277:567 | *call to getArrayInt48 | bslx.cpp:277:582:277:594 | *call to getArrayUint48 | provenance | MaD:230 | -| bslx.cpp:277:582:277:594 | *call to getArrayUint48 | bslx.cpp:277:608:277:619 | *call to getArrayInt56 | provenance | MaD:223 | -| bslx.cpp:277:608:277:619 | *call to getArrayInt56 | bslx.cpp:277:634:277:646 | *call to getArrayUint56 | provenance | MaD:231 | -| bslx.cpp:277:634:277:646 | *call to getArrayUint56 | bslx.cpp:277:660:277:671 | *call to getArrayInt64 | provenance | MaD:224 | -| bslx.cpp:277:660:277:671 | *call to getArrayInt64 | bslx.cpp:277:686:277:698 | *call to getArrayUint64 | provenance | MaD:232 | -| bslx.cpp:277:686:277:698 | *call to getArrayUint64 | bslx.cpp:277:714:277:724 | *call to getArrayFloat32 | provenance | MaD:216 | -| bslx.cpp:277:714:277:724 | *call to getArrayFloat32 | bslx.cpp:277:740:277:750 | *call to getArrayFloat64 | provenance | MaD:217 | -| bslx.cpp:277:740:277:750 | *call to getArrayFloat64 | bslx.cpp:277:761:277:763 | getString output argument | provenance | MaD:245 | -| bslx.cpp:277:761:277:763 | getString output argument | bslx.cpp:278:7:278:17 | * ... | provenance | TaintFunction | -| bslx.cpp:282:33:282:40 | call to source | bslx.cpp:283:46:283:49 | *call to data | provenance | TaintFunction | -| bslx.cpp:283:34:283:39 | call to ByteInStream | bslx.cpp:285:53:285:58 | *stream | provenance | | -| bslx.cpp:283:34:283:39 | call to ByteInStream | bslx.cpp:287:53:287:58 | *stream | provenance | | -| bslx.cpp:283:34:283:39 | call to ByteInStream | bslx.cpp:290:53:290:58 | *stream | provenance | | -| bslx.cpp:283:46:283:49 | *call to data | bslx.cpp:283:34:283:39 | call to ByteInStream | provenance | MaD:171 | -| bslx.cpp:285:53:285:58 | *stream | bslx.cpp:285:61:285:61 | bdexStreamIn output argument | provenance | MaD:169 | -| bslx.cpp:285:61:285:61 | bdexStreamIn output argument | bslx.cpp:286:7:286:7 | x | provenance | | -| bslx.cpp:285:61:285:61 | bdexStreamIn output argument | bslx.cpp:288:7:288:7 | x | provenance | | -| bslx.cpp:287:53:287:58 | *stream | bslx.cpp:287:61:287:61 | bdexStreamIn output argument | provenance | MaD:169 | -| bslx.cpp:287:61:287:61 | bdexStreamIn output argument | bslx.cpp:288:7:288:7 | x | provenance | | -| bslx.cpp:290:52:290:66 | *call to bdexStreamIn | bslx.cpp:290:77:290:79 | getString output argument | provenance | MaD:202 | -| bslx.cpp:290:53:290:58 | *stream | bslx.cpp:290:52:290:66 | *call to bdexStreamIn | provenance | MaD:170 | -| bslx.cpp:290:77:290:79 | getString output argument | bslx.cpp:291:7:291:17 | * ... | provenance | TaintFunction | -| bslx.cpp:295:33:295:40 | call to source | bslx.cpp:296:46:296:49 | *call to data | provenance | TaintFunction | -| bslx.cpp:296:34:296:39 | call to ByteInStream | bslx.cpp:298:53:298:58 | *stream | provenance | | -| bslx.cpp:296:46:296:49 | *call to data | bslx.cpp:296:34:296:39 | call to ByteInStream | provenance | MaD:171 | -| bslx.cpp:298:53:298:58 | *stream | bslx.cpp:298:61:298:63 | bdexStreamIn output argument | provenance | MaD:169 | -| bslx.cpp:298:61:298:63 | bdexStreamIn output argument | bslx.cpp:299:7:299:17 | * ... | provenance | TaintFunction | -| bslx.cpp:309:33:309:40 | call to source | bslx.cpp:310:46:310:49 | *call to data | provenance | TaintFunction | -| bslx.cpp:310:34:310:39 | call to ByteInStream | bslx.cpp:312:53:312:58 | *stream | provenance | | -| bslx.cpp:310:46:310:49 | *call to data | bslx.cpp:310:34:310:39 | call to ByteInStream | provenance | MaD:171 | -| bslx.cpp:312:53:312:58 | *stream | bslx.cpp:312:61:312:63 | bdexStreamIn output argument | provenance | MaD:169 | -| bslx.cpp:312:61:312:63 | bdexStreamIn output argument | bslx.cpp:313:7:313:9 | out | provenance | | -| bslx.cpp:322:40:322:60 | call to source | bslx.cpp:322:40:322:60 | call to source | provenance | | -| bslx.cpp:322:40:322:60 | call to source | bslx.cpp:323:15:323:18 | *data | provenance | | -| bslx.cpp:323:2:323:7 | reset output argument | bslx.cpp:325:2:325:7 | *stream | provenance | | -| bslx.cpp:323:15:323:18 | *data | bslx.cpp:323:2:323:7 | reset output argument | provenance | MaD:213 | -| bslx.cpp:325:2:325:7 | *stream | bslx.cpp:325:19:325:21 | getString output argument | provenance | MaD:202 | -| bslx.cpp:325:19:325:21 | getString output argument | bslx.cpp:326:7:326:17 | * ... | provenance | TaintFunction | -| bslx.cpp:330:33:330:40 | call to source | bslx.cpp:331:46:331:49 | *call to data | provenance | TaintFunction | -| bslx.cpp:331:34:331:39 | call to ByteInStream | bslx.cpp:334:2:334:7 | *stream | provenance | | -| bslx.cpp:331:46:331:49 | *call to data | bslx.cpp:331:34:331:39 | call to ByteInStream | provenance | MaD:171 | -| bslx.cpp:334:2:334:7 | *stream | bslx.cpp:334:19:334:21 | getString output argument | provenance | MaD:202 | -| bslx.cpp:334:19:334:21 | getString output argument | bslx.cpp:335:7:335:17 | * ... | provenance | TaintFunction | -| bslx.cpp:349:33:349:40 | call to source | bslx.cpp:350:46:350:49 | *call to data | provenance | TaintFunction | -| bslx.cpp:350:34:350:39 | call to ByteInStream | bslx.cpp:354:2:354:7 | *stream | provenance | | -| bslx.cpp:350:46:350:49 | *call to data | bslx.cpp:350:34:350:39 | call to ByteInStream | provenance | MaD:171 | -| bslx.cpp:354:2:354:7 | *stream | bslx.cpp:354:19:354:21 | getString output argument | provenance | MaD:202 | -| bslx.cpp:354:19:354:21 | getString output argument | bslx.cpp:356:7:356:17 | * ... | provenance | TaintFunction | -| protobuf.cpp:117:27:117:51 | call to source | protobuf.cpp:117:27:117:51 | call to source | provenance | | -| protobuf.cpp:117:27:117:51 | call to source | protobuf.cpp:118:22:118:25 | data | provenance | | -| protobuf.cpp:118:2:118:4 | ParseFromString output argument | protobuf.cpp:119:7:119:9 | msg | provenance | | -| protobuf.cpp:118:22:118:25 | data | protobuf.cpp:118:2:118:4 | ParseFromString output argument | provenance | MaD:296 | -| protobuf.cpp:124:20:124:37 | call to source | protobuf.cpp:124:20:124:37 | call to source | provenance | | -| protobuf.cpp:124:20:124:37 | call to source | protobuf.cpp:125:22:125:25 | *data | provenance | | -| protobuf.cpp:125:2:125:4 | ParseFromString output argument | protobuf.cpp:126:7:126:9 | msg | provenance | | -| protobuf.cpp:125:22:125:25 | *data | protobuf.cpp:125:2:125:4 | ParseFromString output argument | provenance | MaD:295 | -| protobuf.cpp:131:27:131:51 | call to source | protobuf.cpp:131:27:131:51 | call to source | provenance | | -| protobuf.cpp:131:27:131:51 | call to source | protobuf.cpp:132:29:132:32 | data | provenance | | -| protobuf.cpp:132:2:132:4 | ParsePartialFromString output argument | protobuf.cpp:133:7:133:9 | msg | provenance | | -| protobuf.cpp:132:29:132:32 | data | protobuf.cpp:132:2:132:4 | ParsePartialFromString output argument | provenance | MaD:304 | -| protobuf.cpp:138:20:138:37 | call to source | protobuf.cpp:138:20:138:37 | call to source | provenance | | -| protobuf.cpp:138:20:138:37 | call to source | protobuf.cpp:139:29:139:32 | *data | provenance | | -| protobuf.cpp:139:2:139:4 | ParsePartialFromString output argument | protobuf.cpp:140:7:140:9 | msg | provenance | | -| protobuf.cpp:139:29:139:32 | *data | protobuf.cpp:139:2:139:4 | ParsePartialFromString output argument | provenance | MaD:303 | -| protobuf.cpp:145:27:145:51 | call to source | protobuf.cpp:145:27:145:51 | call to source | provenance | | -| protobuf.cpp:145:27:145:51 | call to source | protobuf.cpp:146:22:146:25 | data | provenance | | -| protobuf.cpp:146:2:146:4 | MergeFromString output argument | protobuf.cpp:147:7:147:9 | msg | provenance | | -| protobuf.cpp:146:22:146:25 | data | protobuf.cpp:146:2:146:4 | MergeFromString output argument | provenance | MaD:284 | -| protobuf.cpp:152:20:152:37 | call to source | protobuf.cpp:152:20:152:37 | call to source | provenance | | -| protobuf.cpp:152:20:152:37 | call to source | protobuf.cpp:153:22:153:25 | *data | provenance | | -| protobuf.cpp:153:2:153:4 | MergeFromString output argument | protobuf.cpp:154:7:154:9 | msg | provenance | | -| protobuf.cpp:153:22:153:25 | *data | protobuf.cpp:153:2:153:4 | MergeFromString output argument | provenance | MaD:283 | -| protobuf.cpp:159:27:159:51 | call to source | protobuf.cpp:159:27:159:51 | call to source | provenance | | -| protobuf.cpp:159:27:159:51 | call to source | protobuf.cpp:160:29:160:32 | data | provenance | | -| protobuf.cpp:160:2:160:4 | MergePartialFromString output argument | protobuf.cpp:161:7:161:9 | msg | provenance | | -| protobuf.cpp:160:29:160:32 | data | protobuf.cpp:160:2:160:4 | MergePartialFromString output argument | provenance | MaD:289 | -| protobuf.cpp:166:20:166:37 | call to source | protobuf.cpp:166:20:166:37 | call to source | provenance | | -| protobuf.cpp:166:20:166:37 | call to source | protobuf.cpp:167:29:167:32 | *data | provenance | | -| protobuf.cpp:167:2:167:4 | MergePartialFromString output argument | protobuf.cpp:168:7:168:9 | msg | provenance | | -| protobuf.cpp:167:29:167:32 | *data | protobuf.cpp:167:2:167:4 | MergePartialFromString output argument | provenance | MaD:288 | -| protobuf.cpp:173:19:173:38 | call to source | protobuf.cpp:174:21:174:31 | *call to data | provenance | TaintFunction | -| protobuf.cpp:174:2:174:4 | ParseFromArray output argument | protobuf.cpp:175:7:175:9 | msg | provenance | | -| protobuf.cpp:174:21:174:31 | *call to data | protobuf.cpp:174:2:174:4 | ParseFromArray output argument | provenance | MaD:290 | -| protobuf.cpp:180:19:180:38 | call to source | protobuf.cpp:181:28:181:38 | *call to data | provenance | TaintFunction | -| protobuf.cpp:181:2:181:4 | ParsePartialFromArray output argument | protobuf.cpp:182:7:182:9 | msg | provenance | | -| protobuf.cpp:181:28:181:38 | *call to data | protobuf.cpp:181:2:181:4 | ParsePartialFromArray output argument | provenance | MaD:298 | -| protobuf.cpp:187:20:187:37 | call to source | protobuf.cpp:187:20:187:37 | call to source | provenance | | -| protobuf.cpp:187:20:187:37 | call to source | protobuf.cpp:188:20:188:23 | *data | provenance | | -| protobuf.cpp:188:2:188:4 | ParseFromCord output argument | protobuf.cpp:189:7:189:9 | msg | provenance | | -| protobuf.cpp:188:20:188:23 | *data | protobuf.cpp:188:2:188:4 | ParseFromCord output argument | provenance | MaD:293 | -| protobuf.cpp:194:20:194:37 | call to source | protobuf.cpp:194:20:194:37 | call to source | provenance | | -| protobuf.cpp:194:20:194:37 | call to source | protobuf.cpp:195:27:195:30 | *data | provenance | | -| protobuf.cpp:195:2:195:4 | ParsePartialFromCord output argument | protobuf.cpp:196:7:196:9 | msg | provenance | | -| protobuf.cpp:195:27:195:30 | *data | protobuf.cpp:195:2:195:4 | ParsePartialFromCord output argument | provenance | MaD:301 | -| protobuf.cpp:201:20:201:37 | call to source | protobuf.cpp:201:20:201:37 | call to source | provenance | | -| protobuf.cpp:201:20:201:37 | call to source | protobuf.cpp:202:20:202:23 | *data | provenance | | -| protobuf.cpp:202:2:202:4 | MergeFromCord output argument | protobuf.cpp:203:7:203:9 | msg | provenance | | -| protobuf.cpp:202:20:202:23 | *data | protobuf.cpp:202:2:202:4 | MergeFromCord output argument | provenance | MaD:282 | -| protobuf.cpp:208:20:208:37 | call to source | protobuf.cpp:208:20:208:37 | call to source | provenance | | -| protobuf.cpp:208:20:208:37 | call to source | protobuf.cpp:209:27:209:30 | *data | provenance | | -| protobuf.cpp:209:2:209:4 | MergePartialFromCord output argument | protobuf.cpp:210:7:210:9 | msg | provenance | | -| protobuf.cpp:209:27:209:30 | *data | protobuf.cpp:209:2:209:4 | MergePartialFromCord output argument | provenance | MaD:287 | -| protobuf.cpp:215:20:215:39 | call to source | protobuf.cpp:215:20:215:39 | call to source | provenance | | -| protobuf.cpp:215:20:215:39 | call to source | protobuf.cpp:216:23:216:25 | *& ... | provenance | | -| protobuf.cpp:216:2:216:4 | ParseFromIstream output argument | protobuf.cpp:217:7:217:9 | msg | provenance | | -| protobuf.cpp:216:23:216:25 | *& ... | protobuf.cpp:216:2:216:4 | ParseFromIstream output argument | provenance | MaD:294 | -| protobuf.cpp:222:20:222:39 | call to source | protobuf.cpp:222:20:222:39 | call to source | provenance | | -| protobuf.cpp:222:20:222:39 | call to source | protobuf.cpp:223:30:223:32 | *& ... | provenance | | -| protobuf.cpp:223:2:223:4 | ParsePartialFromIstream output argument | protobuf.cpp:224:7:224:9 | msg | provenance | | -| protobuf.cpp:223:30:223:32 | *& ... | protobuf.cpp:223:2:223:4 | ParsePartialFromIstream output argument | provenance | MaD:302 | -| protobuf.cpp:229:27:229:53 | call to source | protobuf.cpp:229:27:229:53 | call to source | provenance | | -| protobuf.cpp:229:27:229:53 | call to source | protobuf.cpp:230:30:230:32 | *& ... | provenance | | -| protobuf.cpp:230:2:230:4 | ParseFromZeroCopyStream output argument | protobuf.cpp:231:7:231:9 | msg | provenance | | -| protobuf.cpp:230:30:230:32 | *& ... | protobuf.cpp:230:2:230:4 | ParseFromZeroCopyStream output argument | provenance | MaD:297 | -| protobuf.cpp:236:27:236:53 | call to source | protobuf.cpp:236:27:236:53 | call to source | provenance | | -| protobuf.cpp:236:27:236:53 | call to source | protobuf.cpp:237:37:237:39 | *& ... | provenance | | -| protobuf.cpp:237:2:237:4 | ParsePartialFromZeroCopyStream output argument | protobuf.cpp:238:7:238:9 | msg | provenance | | -| protobuf.cpp:237:37:237:39 | *& ... | protobuf.cpp:237:2:237:4 | ParsePartialFromZeroCopyStream output argument | provenance | MaD:305 | -| protobuf.cpp:243:27:243:53 | call to source | protobuf.cpp:243:27:243:53 | call to source | provenance | | -| protobuf.cpp:243:27:243:53 | call to source | protobuf.cpp:244:37:244:39 | *& ... | provenance | | -| protobuf.cpp:244:2:244:4 | ParseFromBoundedZeroCopyStream output argument | protobuf.cpp:245:7:245:9 | msg | provenance | | -| protobuf.cpp:244:37:244:39 | *& ... | protobuf.cpp:244:2:244:4 | ParseFromBoundedZeroCopyStream output argument | provenance | MaD:291 | -| protobuf.cpp:250:27:250:53 | call to source | protobuf.cpp:250:27:250:53 | call to source | provenance | | -| protobuf.cpp:250:27:250:53 | call to source | protobuf.cpp:251:44:251:46 | *& ... | provenance | | -| protobuf.cpp:251:2:251:4 | ParsePartialFromBoundedZeroCopyStream output argument | protobuf.cpp:252:7:252:9 | msg | provenance | | -| protobuf.cpp:251:44:251:46 | *& ... | protobuf.cpp:251:2:251:4 | ParsePartialFromBoundedZeroCopyStream output argument | provenance | MaD:299 | -| protobuf.cpp:257:27:257:53 | call to source | protobuf.cpp:257:27:257:53 | call to source | provenance | | -| protobuf.cpp:257:27:257:53 | call to source | protobuf.cpp:258:37:258:39 | *& ... | provenance | | -| protobuf.cpp:258:2:258:4 | MergeFromBoundedZeroCopyStream output argument | protobuf.cpp:259:7:259:9 | msg | provenance | | -| protobuf.cpp:258:37:258:39 | *& ... | protobuf.cpp:258:2:258:4 | MergeFromBoundedZeroCopyStream output argument | provenance | MaD:280 | -| protobuf.cpp:264:27:264:53 | call to source | protobuf.cpp:264:27:264:53 | call to source | provenance | | -| protobuf.cpp:264:27:264:53 | call to source | protobuf.cpp:265:44:265:46 | *& ... | provenance | | -| protobuf.cpp:265:2:265:4 | MergePartialFromBoundedZeroCopyStream output argument | protobuf.cpp:266:7:266:9 | msg | provenance | | -| protobuf.cpp:265:44:265:46 | *& ... | protobuf.cpp:265:2:265:4 | MergePartialFromBoundedZeroCopyStream output argument | provenance | MaD:285 | -| protobuf.cpp:271:24:271:47 | call to source | protobuf.cpp:271:24:271:47 | call to source | provenance | | -| protobuf.cpp:271:24:271:47 | call to source | protobuf.cpp:272:27:272:29 | *& ... | provenance | | -| protobuf.cpp:272:2:272:4 | ParseFromCodedStream output argument | protobuf.cpp:273:7:273:9 | msg | provenance | | -| protobuf.cpp:272:27:272:29 | *& ... | protobuf.cpp:272:2:272:4 | ParseFromCodedStream output argument | provenance | MaD:292 | -| protobuf.cpp:278:24:278:47 | call to source | protobuf.cpp:278:24:278:47 | call to source | provenance | | -| protobuf.cpp:278:24:278:47 | call to source | protobuf.cpp:279:34:279:36 | *& ... | provenance | | -| protobuf.cpp:279:2:279:4 | ParsePartialFromCodedStream output argument | protobuf.cpp:280:7:280:9 | msg | provenance | | -| protobuf.cpp:279:34:279:36 | *& ... | protobuf.cpp:279:2:279:4 | ParsePartialFromCodedStream output argument | provenance | MaD:300 | -| protobuf.cpp:285:24:285:47 | call to source | protobuf.cpp:285:24:285:47 | call to source | provenance | | -| protobuf.cpp:285:24:285:47 | call to source | protobuf.cpp:286:27:286:29 | *& ... | provenance | | -| protobuf.cpp:286:2:286:4 | MergeFromCodedStream output argument | protobuf.cpp:287:7:287:9 | msg | provenance | | -| protobuf.cpp:286:27:286:29 | *& ... | protobuf.cpp:286:2:286:4 | MergeFromCodedStream output argument | provenance | MaD:281 | -| protobuf.cpp:292:24:292:47 | call to source | protobuf.cpp:292:24:292:47 | call to source | provenance | | -| protobuf.cpp:292:24:292:47 | call to source | protobuf.cpp:293:34:293:36 | *& ... | provenance | | -| protobuf.cpp:293:2:293:4 | MergePartialFromCodedStream output argument | protobuf.cpp:294:7:294:9 | msg | provenance | | -| protobuf.cpp:293:34:293:36 | *& ... | protobuf.cpp:293:2:293:4 | MergePartialFromCodedStream output argument | provenance | MaD:286 | -| protobuf.cpp:307:15:307:28 | call to source | protobuf.cpp:307:15:307:28 | call to source | provenance | | -| protobuf.cpp:307:15:307:28 | call to source | protobuf.cpp:309:2:309:4 | *msg | provenance | | -| protobuf.cpp:309:2:309:4 | *msg | protobuf.cpp:309:24:309:27 | SerializeToString output argument | provenance | MaD:320 | -| protobuf.cpp:309:24:309:27 | SerializeToString output argument | protobuf.cpp:310:7:310:9 | out | provenance | | -| protobuf.cpp:314:15:314:28 | call to source | protobuf.cpp:314:15:314:28 | call to source | provenance | | -| protobuf.cpp:314:15:314:28 | call to source | protobuf.cpp:316:2:316:4 | *msg | provenance | | -| protobuf.cpp:316:2:316:4 | *msg | protobuf.cpp:316:31:316:34 | SerializePartialToString output argument | provenance | MaD:314 | -| protobuf.cpp:316:31:316:34 | SerializePartialToString output argument | protobuf.cpp:317:7:317:9 | out | provenance | | -| protobuf.cpp:321:15:321:28 | call to source | protobuf.cpp:321:15:321:28 | call to source | provenance | | -| protobuf.cpp:321:15:321:28 | call to source | protobuf.cpp:323:2:323:4 | *msg | provenance | | -| protobuf.cpp:323:2:323:4 | *msg | protobuf.cpp:323:21:323:24 | AppendToString output argument | provenance | MaD:279 | -| protobuf.cpp:323:21:323:24 | AppendToString output argument | protobuf.cpp:324:7:324:9 | out | provenance | | -| protobuf.cpp:328:15:328:28 | call to source | protobuf.cpp:328:15:328:28 | call to source | provenance | | -| protobuf.cpp:328:15:328:28 | call to source | protobuf.cpp:330:2:330:4 | *msg | provenance | | -| protobuf.cpp:330:2:330:4 | *msg | protobuf.cpp:330:28:330:31 | AppendPartialToString output argument | provenance | MaD:277 | -| protobuf.cpp:330:28:330:31 | AppendPartialToString output argument | protobuf.cpp:331:7:331:9 | out | provenance | | -| protobuf.cpp:335:15:335:28 | call to source | protobuf.cpp:335:15:335:28 | call to source | provenance | | -| protobuf.cpp:335:15:335:28 | call to source | protobuf.cpp:337:2:337:4 | *msg | provenance | | -| protobuf.cpp:337:2:337:4 | *msg | protobuf.cpp:337:24:337:27 | SerializeToString output argument | provenance | MaD:320 | -| protobuf.cpp:337:24:337:27 | SerializeToString output argument | protobuf.cpp:338:7:338:9 | out | provenance | | -| protobuf.cpp:342:15:342:28 | call to source | protobuf.cpp:342:15:342:28 | call to source | provenance | | -| protobuf.cpp:342:15:342:28 | call to source | protobuf.cpp:344:2:344:4 | *msg | provenance | | -| protobuf.cpp:344:2:344:4 | *msg | protobuf.cpp:344:31:344:34 | SerializePartialToString output argument | provenance | MaD:314 | -| protobuf.cpp:344:31:344:34 | SerializePartialToString output argument | protobuf.cpp:345:7:345:9 | out | provenance | | -| protobuf.cpp:349:15:349:28 | call to source | protobuf.cpp:349:15:349:28 | call to source | provenance | | -| protobuf.cpp:349:15:349:28 | call to source | protobuf.cpp:351:2:351:4 | *msg | provenance | | -| protobuf.cpp:351:2:351:4 | *msg | protobuf.cpp:351:21:351:24 | AppendToString output argument | provenance | MaD:279 | -| protobuf.cpp:351:21:351:24 | AppendToString output argument | protobuf.cpp:352:7:352:9 | out | provenance | | -| protobuf.cpp:356:15:356:28 | call to source | protobuf.cpp:356:15:356:28 | call to source | provenance | | -| protobuf.cpp:356:15:356:28 | call to source | protobuf.cpp:358:2:358:4 | *msg | provenance | | -| protobuf.cpp:358:2:358:4 | *msg | protobuf.cpp:358:28:358:31 | AppendPartialToString output argument | provenance | MaD:277 | -| protobuf.cpp:358:28:358:31 | AppendPartialToString output argument | protobuf.cpp:359:7:359:9 | out | provenance | | -| protobuf.cpp:363:15:363:28 | call to source | protobuf.cpp:363:15:363:28 | call to source | provenance | | -| protobuf.cpp:363:15:363:28 | call to source | protobuf.cpp:365:2:365:4 | *msg | provenance | | -| protobuf.cpp:365:2:365:4 | *msg | protobuf.cpp:365:23:365:25 | SerializeToArray output argument | provenance | MaD:316 | -| protobuf.cpp:365:23:365:25 | SerializeToArray output argument | protobuf.cpp:366:7:366:10 | * ... | provenance | | -| protobuf.cpp:370:15:370:28 | call to source | protobuf.cpp:370:15:370:28 | call to source | provenance | | -| protobuf.cpp:370:15:370:28 | call to source | protobuf.cpp:372:2:372:4 | *msg | provenance | | -| protobuf.cpp:372:2:372:4 | *msg | protobuf.cpp:372:30:372:32 | SerializePartialToArray output argument | provenance | MaD:310 | -| protobuf.cpp:372:30:372:32 | SerializePartialToArray output argument | protobuf.cpp:373:7:373:10 | * ... | provenance | | -| protobuf.cpp:377:15:377:28 | call to source | protobuf.cpp:377:15:377:28 | call to source | provenance | | -| protobuf.cpp:377:15:377:28 | call to source | protobuf.cpp:379:2:379:4 | *msg | provenance | | -| protobuf.cpp:379:2:379:4 | *msg | protobuf.cpp:379:22:379:25 | SerializeToCord output argument | provenance | MaD:318 | -| protobuf.cpp:379:22:379:25 | SerializeToCord output argument | protobuf.cpp:380:7:380:9 | out | provenance | | -| protobuf.cpp:384:15:384:28 | call to source | protobuf.cpp:384:15:384:28 | call to source | provenance | | -| protobuf.cpp:384:15:384:28 | call to source | protobuf.cpp:386:2:386:4 | *msg | provenance | | -| protobuf.cpp:386:2:386:4 | *msg | protobuf.cpp:386:29:386:32 | SerializePartialToCord output argument | provenance | MaD:312 | -| protobuf.cpp:386:29:386:32 | SerializePartialToCord output argument | protobuf.cpp:387:7:387:9 | out | provenance | | -| protobuf.cpp:391:15:391:28 | call to source | protobuf.cpp:391:15:391:28 | call to source | provenance | | -| protobuf.cpp:391:15:391:28 | call to source | protobuf.cpp:393:2:393:4 | *msg | provenance | | -| protobuf.cpp:393:2:393:4 | *msg | protobuf.cpp:393:19:393:22 | AppendToCord output argument | provenance | MaD:278 | -| protobuf.cpp:393:19:393:22 | AppendToCord output argument | protobuf.cpp:394:7:394:9 | out | provenance | | -| protobuf.cpp:398:15:398:28 | call to source | protobuf.cpp:398:15:398:28 | call to source | provenance | | -| protobuf.cpp:398:15:398:28 | call to source | protobuf.cpp:400:2:400:4 | *msg | provenance | | -| protobuf.cpp:400:2:400:4 | *msg | protobuf.cpp:400:26:400:29 | AppendPartialToCord output argument | provenance | MaD:276 | -| protobuf.cpp:400:26:400:29 | AppendPartialToCord output argument | protobuf.cpp:401:7:401:9 | out | provenance | | -| protobuf.cpp:405:15:405:28 | call to source | protobuf.cpp:405:15:405:28 | call to source | provenance | | -| protobuf.cpp:405:15:405:28 | call to source | protobuf.cpp:407:2:407:4 | *msg | provenance | | -| protobuf.cpp:407:2:407:4 | *msg | protobuf.cpp:407:25:407:28 | SerializeToOstream output argument | provenance | MaD:319 | -| protobuf.cpp:407:25:407:28 | SerializeToOstream output argument | protobuf.cpp:408:7:408:9 | out | provenance | | -| protobuf.cpp:412:15:412:28 | call to source | protobuf.cpp:412:15:412:28 | call to source | provenance | | -| protobuf.cpp:412:15:412:28 | call to source | protobuf.cpp:414:2:414:4 | *msg | provenance | | -| protobuf.cpp:414:2:414:4 | *msg | protobuf.cpp:414:32:414:35 | SerializePartialToOstream output argument | provenance | MaD:313 | -| protobuf.cpp:414:32:414:35 | SerializePartialToOstream output argument | protobuf.cpp:415:7:415:9 | out | provenance | | -| protobuf.cpp:419:15:419:28 | call to source | protobuf.cpp:419:15:419:28 | call to source | provenance | | -| protobuf.cpp:419:15:419:28 | call to source | protobuf.cpp:421:2:421:4 | *msg | provenance | | -| protobuf.cpp:421:2:421:4 | *msg | protobuf.cpp:421:32:421:35 | SerializeToZeroCopyStream output argument | provenance | MaD:321 | -| protobuf.cpp:421:32:421:35 | SerializeToZeroCopyStream output argument | protobuf.cpp:422:7:422:9 | out | provenance | | -| protobuf.cpp:426:15:426:28 | call to source | protobuf.cpp:426:15:426:28 | call to source | provenance | | -| protobuf.cpp:426:15:426:28 | call to source | protobuf.cpp:428:2:428:4 | *msg | provenance | | -| protobuf.cpp:428:2:428:4 | *msg | protobuf.cpp:428:39:428:42 | SerializePartialToZeroCopyStream output argument | provenance | MaD:315 | -| protobuf.cpp:428:39:428:42 | SerializePartialToZeroCopyStream output argument | protobuf.cpp:429:7:429:9 | out | provenance | | -| protobuf.cpp:433:15:433:28 | call to source | protobuf.cpp:433:15:433:28 | call to source | provenance | | -| protobuf.cpp:433:15:433:28 | call to source | protobuf.cpp:435:2:435:4 | *msg | provenance | | -| protobuf.cpp:435:2:435:4 | *msg | protobuf.cpp:435:29:435:32 | SerializeToCodedStream output argument | provenance | MaD:317 | -| protobuf.cpp:435:29:435:32 | SerializeToCodedStream output argument | protobuf.cpp:436:7:436:9 | out | provenance | | -| protobuf.cpp:440:15:440:28 | call to source | protobuf.cpp:440:15:440:28 | call to source | provenance | | -| protobuf.cpp:440:15:440:28 | call to source | protobuf.cpp:442:2:442:4 | *msg | provenance | | -| protobuf.cpp:442:2:442:4 | *msg | protobuf.cpp:442:36:442:39 | SerializePartialToCodedStream output argument | provenance | MaD:311 | -| protobuf.cpp:442:36:442:39 | SerializePartialToCodedStream output argument | protobuf.cpp:443:7:443:9 | out | provenance | | -| protobuf.cpp:449:15:449:28 | call to source | protobuf.cpp:449:15:449:28 | call to source | provenance | | -| protobuf.cpp:449:15:449:28 | call to source | protobuf.cpp:450:7:450:9 | *msg | provenance | | -| protobuf.cpp:450:7:450:9 | *msg | protobuf.cpp:450:11:450:27 | call to SerializeAsString | provenance | MaD:307 | -| protobuf.cpp:454:15:454:28 | call to source | protobuf.cpp:454:15:454:28 | call to source | provenance | | -| protobuf.cpp:454:15:454:28 | call to source | protobuf.cpp:455:7:455:9 | *msg | provenance | | -| protobuf.cpp:455:7:455:9 | *msg | protobuf.cpp:455:11:455:34 | call to SerializePartialAsString | provenance | MaD:309 | -| protobuf.cpp:459:15:459:28 | call to source | protobuf.cpp:459:15:459:28 | call to source | provenance | | -| protobuf.cpp:459:15:459:28 | call to source | protobuf.cpp:460:7:460:9 | *msg | provenance | | -| protobuf.cpp:460:7:460:9 | *msg | protobuf.cpp:460:11:460:25 | call to SerializeAsCord | provenance | MaD:306 | -| protobuf.cpp:464:15:464:28 | call to source | protobuf.cpp:464:15:464:28 | call to source | provenance | | -| protobuf.cpp:464:15:464:28 | call to source | protobuf.cpp:465:7:465:9 | *msg | provenance | | -| protobuf.cpp:465:7:465:9 | *msg | protobuf.cpp:465:11:465:32 | call to SerializePartialAsCord | provenance | MaD:308 | +| bslx.cpp:145:33:145:40 | call to source | bslx.cpp:146:41:146:51 | *call to data | provenance | TaintFunction | +| bslx.cpp:146:34:146:39 | call to ByteInStream | bslx.cpp:148:2:148:7 | *stream | provenance | | +| bslx.cpp:146:41:146:51 | *call to data | bslx.cpp:146:34:146:39 | call to ByteInStream | provenance | MaD:173 | +| bslx.cpp:148:2:148:7 | *stream | bslx.cpp:148:22:148:24 | getArrayInt8 output argument | provenance | MaD:183 | +| bslx.cpp:148:22:148:24 | getArrayInt8 output argument | bslx.cpp:149:7:149:10 | * ... | provenance | | +| bslx.cpp:153:33:153:40 | call to source | bslx.cpp:154:41:154:51 | *call to data | provenance | TaintFunction | +| bslx.cpp:154:34:154:39 | call to ByteInStream | bslx.cpp:156:2:156:7 | *stream | provenance | | +| bslx.cpp:154:41:154:51 | *call to data | bslx.cpp:154:34:154:39 | call to ByteInStream | provenance | MaD:173 | +| bslx.cpp:156:2:156:7 | *stream | bslx.cpp:156:19:156:21 | getString output argument | provenance | MaD:204 | +| bslx.cpp:156:19:156:21 | getString output argument | bslx.cpp:157:7:157:17 | * ... | provenance | TaintFunction | +| bslx.cpp:161:33:161:40 | call to source | bslx.cpp:162:41:162:51 | *call to data | provenance | TaintFunction | +| bslx.cpp:162:34:162:39 | call to ByteInStream | bslx.cpp:165:2:165:7 | *stream | provenance | | +| bslx.cpp:162:41:162:51 | *call to data | bslx.cpp:162:34:162:39 | call to ByteInStream | provenance | MaD:173 | +| bslx.cpp:165:2:165:7 | *stream | bslx.cpp:165:17:165:20 | *call to getInt32 | provenance | MaD:197 | +| bslx.cpp:165:17:165:20 | *call to getInt32 | bslx.cpp:165:31:165:33 | getString output argument | provenance | MaD:204 | +| bslx.cpp:165:31:165:33 | getString output argument | bslx.cpp:166:7:166:17 | * ... | provenance | TaintFunction | +| bslx.cpp:171:33:171:40 | call to source | bslx.cpp:172:15:172:25 | *call to data | provenance | TaintFunction | +| bslx.cpp:172:2:172:7 | reset output argument | bslx.cpp:174:2:174:7 | *stream | provenance | | +| bslx.cpp:172:15:172:25 | *call to data | bslx.cpp:172:2:172:7 | reset output argument | provenance | MaD:216 | +| bslx.cpp:174:2:174:7 | *stream | bslx.cpp:174:19:174:21 | getString output argument | provenance | MaD:204 | +| bslx.cpp:174:19:174:21 | getString output argument | bslx.cpp:175:7:175:17 | * ... | provenance | TaintFunction | +| bslx.cpp:179:33:179:40 | call to source | bslx.cpp:180:20:180:45 | *call to data | provenance | TaintFunction | +| bslx.cpp:180:20:180:45 | *call to data | bslx.cpp:181:57:181:58 | *sb | provenance | | +| bslx.cpp:180:20:180:45 | *call to data | bslx.cpp:183:2:183:7 | *stream | provenance | TaintFunction | +| bslx.cpp:181:50:181:55 | call to GenericInStream | bslx.cpp:183:2:183:7 | *stream | provenance | | +| bslx.cpp:181:57:181:58 | *sb | bslx.cpp:181:50:181:55 | call to GenericInStream | provenance | MaD:217 | +| bslx.cpp:183:2:183:7 | *stream | bslx.cpp:183:19:183:21 | getString output argument | provenance | MaD:247 | +| bslx.cpp:183:19:183:21 | getString output argument | bslx.cpp:184:7:184:17 | * ... | provenance | TaintFunction | +| bslx.cpp:197:33:197:40 | call to source | bslx.cpp:198:41:198:51 | *call to data | provenance | TaintFunction | +| bslx.cpp:198:34:198:39 | call to ByteInStream | bslx.cpp:200:53:200:58 | *stream | provenance | | +| bslx.cpp:198:41:198:51 | *call to data | bslx.cpp:198:34:198:39 | call to ByteInStream | provenance | MaD:173 | +| bslx.cpp:200:53:200:58 | *stream | bslx.cpp:200:61:200:63 | bdexStreamIn output argument | provenance | MaD:171 | +| bslx.cpp:200:61:200:63 | bdexStreamIn output argument | bslx.cpp:201:7:201:17 | * ... | provenance | TaintFunction | +| bslx.cpp:207:33:207:40 | call to source | bslx.cpp:208:41:208:51 | *call to data | provenance | TaintFunction | +| bslx.cpp:208:34:208:39 | call to ByteInStream | bslx.cpp:231:2:231:7 | *stream | provenance | | +| bslx.cpp:208:41:208:51 | *call to data | bslx.cpp:208:34:208:39 | call to ByteInStream | provenance | MaD:173 | +| bslx.cpp:231:2:231:7 | *stream | bslx.cpp:231:18:231:21 | *call to getLength | provenance | MaD:203 | +| bslx.cpp:231:18:231:21 | *call to getLength | bslx.cpp:231:32:231:35 | *call to getVersion | provenance | MaD:214 | +| bslx.cpp:231:32:231:35 | *call to getVersion | bslx.cpp:231:43:231:46 | *call to getInt8 | provenance | MaD:202 | +| bslx.cpp:231:43:231:46 | *call to getInt8 | bslx.cpp:231:55:231:59 | *call to getUint8 | provenance | MaD:213 | +| bslx.cpp:231:55:231:59 | *call to getUint8 | bslx.cpp:231:68:231:71 | *call to getInt16 | provenance | MaD:195 | +| bslx.cpp:231:68:231:71 | *call to getInt16 | bslx.cpp:231:81:231:85 | *call to getUint16 | provenance | MaD:206 | +| bslx.cpp:231:81:231:85 | *call to getUint16 | bslx.cpp:231:94:231:97 | *call to getInt24 | provenance | MaD:196 | +| bslx.cpp:231:94:231:97 | *call to getInt24 | bslx.cpp:231:107:231:111 | *call to getUint24 | provenance | MaD:207 | +| bslx.cpp:231:107:231:111 | *call to getUint24 | bslx.cpp:231:120:231:123 | *call to getInt32 | provenance | MaD:197 | +| bslx.cpp:231:120:231:123 | *call to getInt32 | bslx.cpp:231:133:231:137 | *call to getUint32 | provenance | MaD:208 | +| bslx.cpp:231:133:231:137 | *call to getUint32 | bslx.cpp:231:146:231:150 | *call to getInt40 | provenance | MaD:198 | +| bslx.cpp:231:146:231:150 | *call to getInt40 | bslx.cpp:231:160:231:165 | *call to getUint40 | provenance | MaD:209 | +| bslx.cpp:231:160:231:165 | *call to getUint40 | bslx.cpp:231:174:231:178 | *call to getInt48 | provenance | MaD:199 | +| bslx.cpp:231:174:231:178 | *call to getInt48 | bslx.cpp:231:188:231:193 | *call to getUint48 | provenance | MaD:210 | +| bslx.cpp:231:188:231:193 | *call to getUint48 | bslx.cpp:231:202:231:206 | *call to getInt56 | provenance | MaD:200 | +| bslx.cpp:231:202:231:206 | *call to getInt56 | bslx.cpp:231:216:231:221 | *call to getUint56 | provenance | MaD:211 | +| bslx.cpp:231:216:231:221 | *call to getUint56 | bslx.cpp:231:230:231:234 | *call to getInt64 | provenance | MaD:201 | +| bslx.cpp:231:230:231:234 | *call to getInt64 | bslx.cpp:231:244:231:249 | *call to getUint64 | provenance | MaD:212 | +| bslx.cpp:231:244:231:249 | *call to getUint64 | bslx.cpp:231:260:231:263 | *call to getFloat32 | provenance | MaD:193 | +| bslx.cpp:231:260:231:263 | *call to getFloat32 | bslx.cpp:231:274:231:277 | *call to getFloat64 | provenance | MaD:194 | +| bslx.cpp:231:274:231:277 | *call to getFloat64 | bslx.cpp:231:287:231:292 | *call to getString | provenance | MaD:205 | +| bslx.cpp:231:287:231:292 | *call to getString | bslx.cpp:231:305:231:315 | *call to getArrayInt8 | provenance | MaD:184 | +| bslx.cpp:231:305:231:315 | *call to getArrayInt8 | bslx.cpp:231:329:231:340 | *call to getArrayUint8 | provenance | MaD:192 | +| bslx.cpp:231:329:231:340 | *call to getArrayUint8 | bslx.cpp:231:354:231:364 | *call to getArrayInt16 | provenance | MaD:176 | +| bslx.cpp:231:354:231:364 | *call to getArrayInt16 | bslx.cpp:231:379:231:390 | *call to getArrayUint16 | provenance | MaD:185 | +| bslx.cpp:231:379:231:390 | *call to getArrayUint16 | bslx.cpp:231:404:231:414 | *call to getArrayInt24 | provenance | MaD:177 | +| bslx.cpp:231:404:231:414 | *call to getArrayInt24 | bslx.cpp:231:429:231:440 | *call to getArrayUint24 | provenance | MaD:186 | +| bslx.cpp:231:429:231:440 | *call to getArrayUint24 | bslx.cpp:231:454:231:464 | *call to getArrayInt32 | provenance | MaD:178 | +| bslx.cpp:231:454:231:464 | *call to getArrayInt32 | bslx.cpp:231:479:231:490 | *call to getArrayUint32 | provenance | MaD:187 | +| bslx.cpp:231:479:231:490 | *call to getArrayUint32 | bslx.cpp:231:504:231:515 | *call to getArrayInt40 | provenance | MaD:179 | +| bslx.cpp:231:504:231:515 | *call to getArrayInt40 | bslx.cpp:231:530:231:542 | *call to getArrayUint40 | provenance | MaD:188 | +| bslx.cpp:231:530:231:542 | *call to getArrayUint40 | bslx.cpp:231:556:231:567 | *call to getArrayInt48 | provenance | MaD:180 | +| bslx.cpp:231:556:231:567 | *call to getArrayInt48 | bslx.cpp:231:582:231:594 | *call to getArrayUint48 | provenance | MaD:189 | +| bslx.cpp:231:582:231:594 | *call to getArrayUint48 | bslx.cpp:231:608:231:619 | *call to getArrayInt56 | provenance | MaD:181 | +| bslx.cpp:231:608:231:619 | *call to getArrayInt56 | bslx.cpp:231:634:231:646 | *call to getArrayUint56 | provenance | MaD:190 | +| bslx.cpp:231:634:231:646 | *call to getArrayUint56 | bslx.cpp:231:660:231:671 | *call to getArrayInt64 | provenance | MaD:182 | +| bslx.cpp:231:660:231:671 | *call to getArrayInt64 | bslx.cpp:231:686:231:698 | *call to getArrayUint64 | provenance | MaD:191 | +| bslx.cpp:231:686:231:698 | *call to getArrayUint64 | bslx.cpp:231:714:231:724 | *call to getArrayFloat32 | provenance | MaD:174 | +| bslx.cpp:231:714:231:724 | *call to getArrayFloat32 | bslx.cpp:231:740:231:750 | *call to getArrayFloat64 | provenance | MaD:175 | +| bslx.cpp:231:740:231:750 | *call to getArrayFloat64 | bslx.cpp:231:761:231:763 | getString output argument | provenance | MaD:204 | +| bslx.cpp:231:761:231:763 | getString output argument | bslx.cpp:232:7:232:17 | * ... | provenance | TaintFunction | +| bslx.cpp:236:33:236:40 | call to source | bslx.cpp:237:20:237:45 | *call to data | provenance | TaintFunction | +| bslx.cpp:237:20:237:45 | *call to data | bslx.cpp:238:57:238:58 | *sb | provenance | | +| bslx.cpp:237:20:237:45 | *call to data | bslx.cpp:261:2:261:7 | *stream | provenance | TaintFunction | +| bslx.cpp:238:50:238:55 | call to GenericInStream | bslx.cpp:261:2:261:7 | *stream | provenance | | +| bslx.cpp:238:57:238:58 | *sb | bslx.cpp:238:50:238:55 | call to GenericInStream | provenance | MaD:217 | +| bslx.cpp:261:2:261:7 | *stream | bslx.cpp:261:18:261:21 | *call to getLength | provenance | MaD:246 | +| bslx.cpp:261:18:261:21 | *call to getLength | bslx.cpp:261:32:261:35 | *call to getVersion | provenance | MaD:257 | +| bslx.cpp:261:32:261:35 | *call to getVersion | bslx.cpp:261:43:261:46 | *call to getInt8 | provenance | MaD:245 | +| bslx.cpp:261:43:261:46 | *call to getInt8 | bslx.cpp:261:55:261:59 | *call to getUint8 | provenance | MaD:256 | +| bslx.cpp:261:55:261:59 | *call to getUint8 | bslx.cpp:261:68:261:71 | *call to getInt16 | provenance | MaD:238 | +| bslx.cpp:261:68:261:71 | *call to getInt16 | bslx.cpp:261:81:261:85 | *call to getUint16 | provenance | MaD:249 | +| bslx.cpp:261:81:261:85 | *call to getUint16 | bslx.cpp:261:94:261:97 | *call to getInt24 | provenance | MaD:239 | +| bslx.cpp:261:94:261:97 | *call to getInt24 | bslx.cpp:261:107:261:111 | *call to getUint24 | provenance | MaD:250 | +| bslx.cpp:261:107:261:111 | *call to getUint24 | bslx.cpp:261:120:261:123 | *call to getInt32 | provenance | MaD:240 | +| bslx.cpp:261:120:261:123 | *call to getInt32 | bslx.cpp:261:133:261:137 | *call to getUint32 | provenance | MaD:251 | +| bslx.cpp:261:133:261:137 | *call to getUint32 | bslx.cpp:261:146:261:150 | *call to getInt40 | provenance | MaD:241 | +| bslx.cpp:261:146:261:150 | *call to getInt40 | bslx.cpp:261:160:261:165 | *call to getUint40 | provenance | MaD:252 | +| bslx.cpp:261:160:261:165 | *call to getUint40 | bslx.cpp:261:174:261:178 | *call to getInt48 | provenance | MaD:242 | +| bslx.cpp:261:174:261:178 | *call to getInt48 | bslx.cpp:261:188:261:193 | *call to getUint48 | provenance | MaD:253 | +| bslx.cpp:261:188:261:193 | *call to getUint48 | bslx.cpp:261:202:261:206 | *call to getInt56 | provenance | MaD:243 | +| bslx.cpp:261:202:261:206 | *call to getInt56 | bslx.cpp:261:216:261:221 | *call to getUint56 | provenance | MaD:254 | +| bslx.cpp:261:216:261:221 | *call to getUint56 | bslx.cpp:261:230:261:234 | *call to getInt64 | provenance | MaD:244 | +| bslx.cpp:261:230:261:234 | *call to getInt64 | bslx.cpp:261:244:261:249 | *call to getUint64 | provenance | MaD:255 | +| bslx.cpp:261:244:261:249 | *call to getUint64 | bslx.cpp:261:260:261:263 | *call to getFloat32 | provenance | MaD:236 | +| bslx.cpp:261:260:261:263 | *call to getFloat32 | bslx.cpp:261:274:261:277 | *call to getFloat64 | provenance | MaD:237 | +| bslx.cpp:261:274:261:277 | *call to getFloat64 | bslx.cpp:261:287:261:292 | *call to getString | provenance | MaD:248 | +| bslx.cpp:261:287:261:292 | *call to getString | bslx.cpp:261:305:261:315 | *call to getArrayInt8 | provenance | MaD:227 | +| bslx.cpp:261:305:261:315 | *call to getArrayInt8 | bslx.cpp:261:329:261:340 | *call to getArrayUint8 | provenance | MaD:235 | +| bslx.cpp:261:329:261:340 | *call to getArrayUint8 | bslx.cpp:261:354:261:364 | *call to getArrayInt16 | provenance | MaD:220 | +| bslx.cpp:261:354:261:364 | *call to getArrayInt16 | bslx.cpp:261:379:261:390 | *call to getArrayUint16 | provenance | MaD:228 | +| bslx.cpp:261:379:261:390 | *call to getArrayUint16 | bslx.cpp:261:404:261:414 | *call to getArrayInt24 | provenance | MaD:221 | +| bslx.cpp:261:404:261:414 | *call to getArrayInt24 | bslx.cpp:261:429:261:440 | *call to getArrayUint24 | provenance | MaD:229 | +| bslx.cpp:261:429:261:440 | *call to getArrayUint24 | bslx.cpp:261:454:261:464 | *call to getArrayInt32 | provenance | MaD:222 | +| bslx.cpp:261:454:261:464 | *call to getArrayInt32 | bslx.cpp:261:479:261:490 | *call to getArrayUint32 | provenance | MaD:230 | +| bslx.cpp:261:479:261:490 | *call to getArrayUint32 | bslx.cpp:261:504:261:515 | *call to getArrayInt40 | provenance | MaD:223 | +| bslx.cpp:261:504:261:515 | *call to getArrayInt40 | bslx.cpp:261:530:261:542 | *call to getArrayUint40 | provenance | MaD:231 | +| bslx.cpp:261:530:261:542 | *call to getArrayUint40 | bslx.cpp:261:556:261:567 | *call to getArrayInt48 | provenance | MaD:224 | +| bslx.cpp:261:556:261:567 | *call to getArrayInt48 | bslx.cpp:261:582:261:594 | *call to getArrayUint48 | provenance | MaD:232 | +| bslx.cpp:261:582:261:594 | *call to getArrayUint48 | bslx.cpp:261:608:261:619 | *call to getArrayInt56 | provenance | MaD:225 | +| bslx.cpp:261:608:261:619 | *call to getArrayInt56 | bslx.cpp:261:634:261:646 | *call to getArrayUint56 | provenance | MaD:233 | +| bslx.cpp:261:634:261:646 | *call to getArrayUint56 | bslx.cpp:261:660:261:671 | *call to getArrayInt64 | provenance | MaD:226 | +| bslx.cpp:261:660:261:671 | *call to getArrayInt64 | bslx.cpp:261:686:261:698 | *call to getArrayUint64 | provenance | MaD:234 | +| bslx.cpp:261:686:261:698 | *call to getArrayUint64 | bslx.cpp:261:714:261:724 | *call to getArrayFloat32 | provenance | MaD:218 | +| bslx.cpp:261:714:261:724 | *call to getArrayFloat32 | bslx.cpp:261:740:261:750 | *call to getArrayFloat64 | provenance | MaD:219 | +| bslx.cpp:261:740:261:750 | *call to getArrayFloat64 | bslx.cpp:261:761:261:763 | getString output argument | provenance | MaD:247 | +| bslx.cpp:261:761:261:763 | getString output argument | bslx.cpp:262:7:262:17 | * ... | provenance | TaintFunction | +| bslx.cpp:266:33:266:40 | call to source | bslx.cpp:267:41:267:51 | *call to data | provenance | TaintFunction | +| bslx.cpp:267:34:267:39 | call to ByteInStream | bslx.cpp:269:53:269:58 | *stream | provenance | | +| bslx.cpp:267:34:267:39 | call to ByteInStream | bslx.cpp:271:53:271:58 | *stream | provenance | | +| bslx.cpp:267:34:267:39 | call to ByteInStream | bslx.cpp:274:53:274:58 | *stream | provenance | | +| bslx.cpp:267:41:267:51 | *call to data | bslx.cpp:267:34:267:39 | call to ByteInStream | provenance | MaD:173 | +| bslx.cpp:269:53:269:58 | *stream | bslx.cpp:269:61:269:61 | bdexStreamIn output argument | provenance | MaD:171 | +| bslx.cpp:269:61:269:61 | bdexStreamIn output argument | bslx.cpp:270:7:270:7 | x | provenance | | +| bslx.cpp:269:61:269:61 | bdexStreamIn output argument | bslx.cpp:272:7:272:7 | x | provenance | | +| bslx.cpp:271:53:271:58 | *stream | bslx.cpp:271:61:271:61 | bdexStreamIn output argument | provenance | MaD:171 | +| bslx.cpp:271:61:271:61 | bdexStreamIn output argument | bslx.cpp:272:7:272:7 | x | provenance | | +| bslx.cpp:274:52:274:66 | *call to bdexStreamIn | bslx.cpp:274:77:274:79 | getString output argument | provenance | MaD:204 | +| bslx.cpp:274:53:274:58 | *stream | bslx.cpp:274:52:274:66 | *call to bdexStreamIn | provenance | MaD:172 | +| bslx.cpp:274:77:274:79 | getString output argument | bslx.cpp:275:7:275:17 | * ... | provenance | TaintFunction | +| bslx.cpp:279:33:279:40 | call to source | bslx.cpp:280:41:280:51 | *call to data | provenance | TaintFunction | +| bslx.cpp:280:34:280:39 | call to ByteInStream | bslx.cpp:282:53:282:58 | *stream | provenance | | +| bslx.cpp:280:41:280:51 | *call to data | bslx.cpp:280:34:280:39 | call to ByteInStream | provenance | MaD:173 | +| bslx.cpp:282:53:282:58 | *stream | bslx.cpp:282:61:282:63 | bdexStreamIn output argument | provenance | MaD:171 | +| bslx.cpp:282:61:282:63 | bdexStreamIn output argument | bslx.cpp:283:7:283:17 | * ... | provenance | TaintFunction | +| bslx.cpp:293:33:293:40 | call to source | bslx.cpp:294:41:294:51 | *call to data | provenance | TaintFunction | +| bslx.cpp:294:34:294:39 | call to ByteInStream | bslx.cpp:296:53:296:58 | *stream | provenance | | +| bslx.cpp:294:41:294:51 | *call to data | bslx.cpp:294:34:294:39 | call to ByteInStream | provenance | MaD:173 | +| bslx.cpp:296:53:296:58 | *stream | bslx.cpp:296:61:296:63 | bdexStreamIn output argument | provenance | MaD:171 | +| bslx.cpp:296:61:296:63 | bdexStreamIn output argument | bslx.cpp:297:7:297:9 | out | provenance | | +| bslx.cpp:306:40:306:60 | call to source | bslx.cpp:306:40:306:60 | call to source | provenance | | +| bslx.cpp:306:40:306:60 | call to source | bslx.cpp:307:15:307:18 | *data | provenance | | +| bslx.cpp:307:2:307:7 | reset output argument | bslx.cpp:309:2:309:7 | *stream | provenance | | +| bslx.cpp:307:15:307:18 | *data | bslx.cpp:307:2:307:7 | reset output argument | provenance | MaD:215 | +| bslx.cpp:309:2:309:7 | *stream | bslx.cpp:309:19:309:21 | getString output argument | provenance | MaD:204 | +| bslx.cpp:309:19:309:21 | getString output argument | bslx.cpp:310:7:310:17 | * ... | provenance | TaintFunction | +| bslx.cpp:314:33:314:40 | call to source | bslx.cpp:315:41:315:51 | *call to data | provenance | TaintFunction | +| bslx.cpp:315:34:315:39 | call to ByteInStream | bslx.cpp:318:2:318:7 | *stream | provenance | | +| bslx.cpp:315:41:315:51 | *call to data | bslx.cpp:315:34:315:39 | call to ByteInStream | provenance | MaD:173 | +| bslx.cpp:318:2:318:7 | *stream | bslx.cpp:318:19:318:21 | getString output argument | provenance | MaD:204 | +| bslx.cpp:318:19:318:21 | getString output argument | bslx.cpp:319:7:319:17 | * ... | provenance | TaintFunction | +| bslx.cpp:333:33:333:40 | call to source | bslx.cpp:334:41:334:51 | *call to data | provenance | TaintFunction | +| bslx.cpp:334:34:334:39 | call to ByteInStream | bslx.cpp:338:2:338:7 | *stream | provenance | | +| bslx.cpp:334:41:334:51 | *call to data | bslx.cpp:334:34:334:39 | call to ByteInStream | provenance | MaD:173 | +| bslx.cpp:338:2:338:7 | *stream | bslx.cpp:338:19:338:21 | getString output argument | provenance | MaD:204 | +| bslx.cpp:338:19:338:21 | getString output argument | bslx.cpp:340:7:340:17 | * ... | provenance | TaintFunction | +| protobuf.cpp:105:27:105:51 | call to source | protobuf.cpp:105:27:105:51 | call to source | provenance | | +| protobuf.cpp:105:27:105:51 | call to source | protobuf.cpp:106:22:106:25 | data | provenance | | +| protobuf.cpp:106:2:106:4 | ParseFromString output argument | protobuf.cpp:107:7:107:9 | msg | provenance | | +| protobuf.cpp:106:22:106:25 | data | protobuf.cpp:106:2:106:4 | ParseFromString output argument | provenance | MaD:290 | +| protobuf.cpp:112:20:112:37 | call to source | protobuf.cpp:112:20:112:37 | call to source | provenance | | +| protobuf.cpp:112:20:112:37 | call to source | protobuf.cpp:113:22:113:25 | *data | provenance | | +| protobuf.cpp:113:2:113:4 | ParseFromString output argument | protobuf.cpp:114:7:114:9 | msg | provenance | | +| protobuf.cpp:113:22:113:25 | *data | protobuf.cpp:113:2:113:4 | ParseFromString output argument | provenance | MaD:289 | +| protobuf.cpp:119:27:119:51 | call to source | protobuf.cpp:119:27:119:51 | call to source | provenance | | +| protobuf.cpp:119:27:119:51 | call to source | protobuf.cpp:120:29:120:32 | data | provenance | | +| protobuf.cpp:120:2:120:4 | ParsePartialFromString output argument | protobuf.cpp:121:7:121:9 | msg | provenance | | +| protobuf.cpp:120:29:120:32 | data | protobuf.cpp:120:2:120:4 | ParsePartialFromString output argument | provenance | MaD:298 | +| protobuf.cpp:126:20:126:37 | call to source | protobuf.cpp:126:20:126:37 | call to source | provenance | | +| protobuf.cpp:126:20:126:37 | call to source | protobuf.cpp:127:29:127:32 | *data | provenance | | +| protobuf.cpp:127:2:127:4 | ParsePartialFromString output argument | protobuf.cpp:128:7:128:9 | msg | provenance | | +| protobuf.cpp:127:29:127:32 | *data | protobuf.cpp:127:2:127:4 | ParsePartialFromString output argument | provenance | MaD:297 | +| protobuf.cpp:133:27:133:51 | call to source | protobuf.cpp:133:27:133:51 | call to source | provenance | | +| protobuf.cpp:133:27:133:51 | call to source | protobuf.cpp:134:22:134:25 | data | provenance | | +| protobuf.cpp:134:2:134:4 | MergeFromString output argument | protobuf.cpp:135:7:135:9 | msg | provenance | | +| protobuf.cpp:134:22:134:25 | data | protobuf.cpp:134:2:134:4 | MergeFromString output argument | provenance | MaD:278 | +| protobuf.cpp:140:20:140:37 | call to source | protobuf.cpp:140:20:140:37 | call to source | provenance | | +| protobuf.cpp:140:20:140:37 | call to source | protobuf.cpp:141:22:141:25 | *data | provenance | | +| protobuf.cpp:141:2:141:4 | MergeFromString output argument | protobuf.cpp:142:7:142:9 | msg | provenance | | +| protobuf.cpp:141:22:141:25 | *data | protobuf.cpp:141:2:141:4 | MergeFromString output argument | provenance | MaD:277 | +| protobuf.cpp:147:27:147:51 | call to source | protobuf.cpp:147:27:147:51 | call to source | provenance | | +| protobuf.cpp:147:27:147:51 | call to source | protobuf.cpp:148:29:148:32 | data | provenance | | +| protobuf.cpp:148:2:148:4 | MergePartialFromString output argument | protobuf.cpp:149:7:149:9 | msg | provenance | | +| protobuf.cpp:148:29:148:32 | data | protobuf.cpp:148:2:148:4 | MergePartialFromString output argument | provenance | MaD:283 | +| protobuf.cpp:154:20:154:37 | call to source | protobuf.cpp:154:20:154:37 | call to source | provenance | | +| protobuf.cpp:154:20:154:37 | call to source | protobuf.cpp:155:29:155:32 | *data | provenance | | +| protobuf.cpp:155:2:155:4 | MergePartialFromString output argument | protobuf.cpp:156:7:156:9 | msg | provenance | | +| protobuf.cpp:155:29:155:32 | *data | protobuf.cpp:155:2:155:4 | MergePartialFromString output argument | provenance | MaD:282 | +| protobuf.cpp:161:19:161:38 | call to source | protobuf.cpp:162:21:162:31 | *call to data | provenance | TaintFunction | +| protobuf.cpp:162:2:162:4 | ParseFromArray output argument | protobuf.cpp:163:7:163:9 | msg | provenance | | +| protobuf.cpp:162:21:162:31 | *call to data | protobuf.cpp:162:2:162:4 | ParseFromArray output argument | provenance | MaD:284 | +| protobuf.cpp:168:19:168:38 | call to source | protobuf.cpp:169:28:169:38 | *call to data | provenance | TaintFunction | +| protobuf.cpp:169:2:169:4 | ParsePartialFromArray output argument | protobuf.cpp:170:7:170:9 | msg | provenance | | +| protobuf.cpp:169:28:169:38 | *call to data | protobuf.cpp:169:2:169:4 | ParsePartialFromArray output argument | provenance | MaD:292 | +| protobuf.cpp:175:20:175:37 | call to source | protobuf.cpp:175:20:175:37 | call to source | provenance | | +| protobuf.cpp:175:20:175:37 | call to source | protobuf.cpp:176:20:176:23 | *data | provenance | | +| protobuf.cpp:176:2:176:4 | ParseFromCord output argument | protobuf.cpp:177:7:177:9 | msg | provenance | | +| protobuf.cpp:176:20:176:23 | *data | protobuf.cpp:176:2:176:4 | ParseFromCord output argument | provenance | MaD:287 | +| protobuf.cpp:182:20:182:37 | call to source | protobuf.cpp:182:20:182:37 | call to source | provenance | | +| protobuf.cpp:182:20:182:37 | call to source | protobuf.cpp:183:27:183:30 | *data | provenance | | +| protobuf.cpp:183:2:183:4 | ParsePartialFromCord output argument | protobuf.cpp:184:7:184:9 | msg | provenance | | +| protobuf.cpp:183:27:183:30 | *data | protobuf.cpp:183:2:183:4 | ParsePartialFromCord output argument | provenance | MaD:295 | +| protobuf.cpp:189:20:189:37 | call to source | protobuf.cpp:189:20:189:37 | call to source | provenance | | +| protobuf.cpp:189:20:189:37 | call to source | protobuf.cpp:190:20:190:23 | *data | provenance | | +| protobuf.cpp:190:2:190:4 | MergeFromCord output argument | protobuf.cpp:191:7:191:9 | msg | provenance | | +| protobuf.cpp:190:20:190:23 | *data | protobuf.cpp:190:2:190:4 | MergeFromCord output argument | provenance | MaD:276 | +| protobuf.cpp:196:20:196:37 | call to source | protobuf.cpp:196:20:196:37 | call to source | provenance | | +| protobuf.cpp:196:20:196:37 | call to source | protobuf.cpp:197:27:197:30 | *data | provenance | | +| protobuf.cpp:197:2:197:4 | MergePartialFromCord output argument | protobuf.cpp:198:7:198:9 | msg | provenance | | +| protobuf.cpp:197:27:197:30 | *data | protobuf.cpp:197:2:197:4 | MergePartialFromCord output argument | provenance | MaD:281 | +| protobuf.cpp:203:20:203:39 | call to source | protobuf.cpp:203:20:203:39 | call to source | provenance | | +| protobuf.cpp:203:20:203:39 | call to source | protobuf.cpp:204:23:204:25 | *& ... | provenance | | +| protobuf.cpp:204:2:204:4 | ParseFromIstream output argument | protobuf.cpp:205:7:205:9 | msg | provenance | | +| protobuf.cpp:204:23:204:25 | *& ... | protobuf.cpp:204:2:204:4 | ParseFromIstream output argument | provenance | MaD:288 | +| protobuf.cpp:210:20:210:39 | call to source | protobuf.cpp:210:20:210:39 | call to source | provenance | | +| protobuf.cpp:210:20:210:39 | call to source | protobuf.cpp:211:30:211:32 | *& ... | provenance | | +| protobuf.cpp:211:2:211:4 | ParsePartialFromIstream output argument | protobuf.cpp:212:7:212:9 | msg | provenance | | +| protobuf.cpp:211:30:211:32 | *& ... | protobuf.cpp:211:2:211:4 | ParsePartialFromIstream output argument | provenance | MaD:296 | +| protobuf.cpp:217:27:217:53 | call to source | protobuf.cpp:217:27:217:53 | call to source | provenance | | +| protobuf.cpp:217:27:217:53 | call to source | protobuf.cpp:218:30:218:32 | *& ... | provenance | | +| protobuf.cpp:218:2:218:4 | ParseFromZeroCopyStream output argument | protobuf.cpp:219:7:219:9 | msg | provenance | | +| protobuf.cpp:218:30:218:32 | *& ... | protobuf.cpp:218:2:218:4 | ParseFromZeroCopyStream output argument | provenance | MaD:291 | +| protobuf.cpp:224:27:224:53 | call to source | protobuf.cpp:224:27:224:53 | call to source | provenance | | +| protobuf.cpp:224:27:224:53 | call to source | protobuf.cpp:225:37:225:39 | *& ... | provenance | | +| protobuf.cpp:225:2:225:4 | ParsePartialFromZeroCopyStream output argument | protobuf.cpp:226:7:226:9 | msg | provenance | | +| protobuf.cpp:225:37:225:39 | *& ... | protobuf.cpp:225:2:225:4 | ParsePartialFromZeroCopyStream output argument | provenance | MaD:299 | +| protobuf.cpp:231:27:231:53 | call to source | protobuf.cpp:231:27:231:53 | call to source | provenance | | +| protobuf.cpp:231:27:231:53 | call to source | protobuf.cpp:232:37:232:39 | *& ... | provenance | | +| protobuf.cpp:232:2:232:4 | ParseFromBoundedZeroCopyStream output argument | protobuf.cpp:233:7:233:9 | msg | provenance | | +| protobuf.cpp:232:37:232:39 | *& ... | protobuf.cpp:232:2:232:4 | ParseFromBoundedZeroCopyStream output argument | provenance | MaD:285 | +| protobuf.cpp:238:27:238:53 | call to source | protobuf.cpp:238:27:238:53 | call to source | provenance | | +| protobuf.cpp:238:27:238:53 | call to source | protobuf.cpp:239:44:239:46 | *& ... | provenance | | +| protobuf.cpp:239:2:239:4 | ParsePartialFromBoundedZeroCopyStream output argument | protobuf.cpp:240:7:240:9 | msg | provenance | | +| protobuf.cpp:239:44:239:46 | *& ... | protobuf.cpp:239:2:239:4 | ParsePartialFromBoundedZeroCopyStream output argument | provenance | MaD:293 | +| protobuf.cpp:245:27:245:53 | call to source | protobuf.cpp:245:27:245:53 | call to source | provenance | | +| protobuf.cpp:245:27:245:53 | call to source | protobuf.cpp:246:37:246:39 | *& ... | provenance | | +| protobuf.cpp:246:2:246:4 | MergeFromBoundedZeroCopyStream output argument | protobuf.cpp:247:7:247:9 | msg | provenance | | +| protobuf.cpp:246:37:246:39 | *& ... | protobuf.cpp:246:2:246:4 | MergeFromBoundedZeroCopyStream output argument | provenance | MaD:274 | +| protobuf.cpp:252:27:252:53 | call to source | protobuf.cpp:252:27:252:53 | call to source | provenance | | +| protobuf.cpp:252:27:252:53 | call to source | protobuf.cpp:253:44:253:46 | *& ... | provenance | | +| protobuf.cpp:253:2:253:4 | MergePartialFromBoundedZeroCopyStream output argument | protobuf.cpp:254:7:254:9 | msg | provenance | | +| protobuf.cpp:253:44:253:46 | *& ... | protobuf.cpp:253:2:253:4 | MergePartialFromBoundedZeroCopyStream output argument | provenance | MaD:279 | +| protobuf.cpp:259:24:259:47 | call to source | protobuf.cpp:259:24:259:47 | call to source | provenance | | +| protobuf.cpp:259:24:259:47 | call to source | protobuf.cpp:260:27:260:29 | *& ... | provenance | | +| protobuf.cpp:260:2:260:4 | ParseFromCodedStream output argument | protobuf.cpp:261:7:261:9 | msg | provenance | | +| protobuf.cpp:260:27:260:29 | *& ... | protobuf.cpp:260:2:260:4 | ParseFromCodedStream output argument | provenance | MaD:286 | +| protobuf.cpp:266:24:266:47 | call to source | protobuf.cpp:266:24:266:47 | call to source | provenance | | +| protobuf.cpp:266:24:266:47 | call to source | protobuf.cpp:267:34:267:36 | *& ... | provenance | | +| protobuf.cpp:267:2:267:4 | ParsePartialFromCodedStream output argument | protobuf.cpp:268:7:268:9 | msg | provenance | | +| protobuf.cpp:267:34:267:36 | *& ... | protobuf.cpp:267:2:267:4 | ParsePartialFromCodedStream output argument | provenance | MaD:294 | +| protobuf.cpp:273:24:273:47 | call to source | protobuf.cpp:273:24:273:47 | call to source | provenance | | +| protobuf.cpp:273:24:273:47 | call to source | protobuf.cpp:274:27:274:29 | *& ... | provenance | | +| protobuf.cpp:274:2:274:4 | MergeFromCodedStream output argument | protobuf.cpp:275:7:275:9 | msg | provenance | | +| protobuf.cpp:274:27:274:29 | *& ... | protobuf.cpp:274:2:274:4 | MergeFromCodedStream output argument | provenance | MaD:275 | +| protobuf.cpp:280:24:280:47 | call to source | protobuf.cpp:280:24:280:47 | call to source | provenance | | +| protobuf.cpp:280:24:280:47 | call to source | protobuf.cpp:281:34:281:36 | *& ... | provenance | | +| protobuf.cpp:281:2:281:4 | MergePartialFromCodedStream output argument | protobuf.cpp:282:7:282:9 | msg | provenance | | +| protobuf.cpp:281:34:281:36 | *& ... | protobuf.cpp:281:2:281:4 | MergePartialFromCodedStream output argument | provenance | MaD:280 | +| protobuf.cpp:295:15:295:28 | call to source | protobuf.cpp:295:15:295:28 | call to source | provenance | | +| protobuf.cpp:295:15:295:28 | call to source | protobuf.cpp:297:2:297:4 | *msg | provenance | | +| protobuf.cpp:297:2:297:4 | *msg | protobuf.cpp:297:24:297:27 | SerializeToString output argument | provenance | MaD:314 | +| protobuf.cpp:297:24:297:27 | SerializeToString output argument | protobuf.cpp:298:7:298:9 | out | provenance | | +| protobuf.cpp:302:15:302:28 | call to source | protobuf.cpp:302:15:302:28 | call to source | provenance | | +| protobuf.cpp:302:15:302:28 | call to source | protobuf.cpp:304:2:304:4 | *msg | provenance | | +| protobuf.cpp:304:2:304:4 | *msg | protobuf.cpp:304:31:304:34 | SerializePartialToString output argument | provenance | MaD:308 | +| protobuf.cpp:304:31:304:34 | SerializePartialToString output argument | protobuf.cpp:305:7:305:9 | out | provenance | | +| protobuf.cpp:309:15:309:28 | call to source | protobuf.cpp:309:15:309:28 | call to source | provenance | | +| protobuf.cpp:309:15:309:28 | call to source | protobuf.cpp:311:2:311:4 | *msg | provenance | | +| protobuf.cpp:311:2:311:4 | *msg | protobuf.cpp:311:21:311:24 | AppendToString output argument | provenance | MaD:273 | +| protobuf.cpp:311:21:311:24 | AppendToString output argument | protobuf.cpp:312:7:312:9 | out | provenance | | +| protobuf.cpp:316:15:316:28 | call to source | protobuf.cpp:316:15:316:28 | call to source | provenance | | +| protobuf.cpp:316:15:316:28 | call to source | protobuf.cpp:318:2:318:4 | *msg | provenance | | +| protobuf.cpp:318:2:318:4 | *msg | protobuf.cpp:318:28:318:31 | AppendPartialToString output argument | provenance | MaD:271 | +| protobuf.cpp:318:28:318:31 | AppendPartialToString output argument | protobuf.cpp:319:7:319:9 | out | provenance | | +| protobuf.cpp:323:15:323:28 | call to source | protobuf.cpp:323:15:323:28 | call to source | provenance | | +| protobuf.cpp:323:15:323:28 | call to source | protobuf.cpp:325:2:325:4 | *msg | provenance | | +| protobuf.cpp:325:2:325:4 | *msg | protobuf.cpp:325:24:325:27 | SerializeToString output argument | provenance | MaD:314 | +| protobuf.cpp:325:24:325:27 | SerializeToString output argument | protobuf.cpp:326:7:326:9 | out | provenance | | +| protobuf.cpp:330:15:330:28 | call to source | protobuf.cpp:330:15:330:28 | call to source | provenance | | +| protobuf.cpp:330:15:330:28 | call to source | protobuf.cpp:332:2:332:4 | *msg | provenance | | +| protobuf.cpp:332:2:332:4 | *msg | protobuf.cpp:332:31:332:34 | SerializePartialToString output argument | provenance | MaD:308 | +| protobuf.cpp:332:31:332:34 | SerializePartialToString output argument | protobuf.cpp:333:7:333:9 | out | provenance | | +| protobuf.cpp:337:15:337:28 | call to source | protobuf.cpp:337:15:337:28 | call to source | provenance | | +| protobuf.cpp:337:15:337:28 | call to source | protobuf.cpp:339:2:339:4 | *msg | provenance | | +| protobuf.cpp:339:2:339:4 | *msg | protobuf.cpp:339:21:339:24 | AppendToString output argument | provenance | MaD:273 | +| protobuf.cpp:339:21:339:24 | AppendToString output argument | protobuf.cpp:340:7:340:9 | out | provenance | | +| protobuf.cpp:344:15:344:28 | call to source | protobuf.cpp:344:15:344:28 | call to source | provenance | | +| protobuf.cpp:344:15:344:28 | call to source | protobuf.cpp:346:2:346:4 | *msg | provenance | | +| protobuf.cpp:346:2:346:4 | *msg | protobuf.cpp:346:28:346:31 | AppendPartialToString output argument | provenance | MaD:271 | +| protobuf.cpp:346:28:346:31 | AppendPartialToString output argument | protobuf.cpp:347:7:347:9 | out | provenance | | +| protobuf.cpp:351:15:351:28 | call to source | protobuf.cpp:351:15:351:28 | call to source | provenance | | +| protobuf.cpp:351:15:351:28 | call to source | protobuf.cpp:353:2:353:4 | *msg | provenance | | +| protobuf.cpp:353:2:353:4 | *msg | protobuf.cpp:353:23:353:25 | SerializeToArray output argument | provenance | MaD:310 | +| protobuf.cpp:353:23:353:25 | SerializeToArray output argument | protobuf.cpp:354:7:354:10 | * ... | provenance | | +| protobuf.cpp:358:15:358:28 | call to source | protobuf.cpp:358:15:358:28 | call to source | provenance | | +| protobuf.cpp:358:15:358:28 | call to source | protobuf.cpp:360:2:360:4 | *msg | provenance | | +| protobuf.cpp:360:2:360:4 | *msg | protobuf.cpp:360:30:360:32 | SerializePartialToArray output argument | provenance | MaD:304 | +| protobuf.cpp:360:30:360:32 | SerializePartialToArray output argument | protobuf.cpp:361:7:361:10 | * ... | provenance | | +| protobuf.cpp:365:15:365:28 | call to source | protobuf.cpp:365:15:365:28 | call to source | provenance | | +| protobuf.cpp:365:15:365:28 | call to source | protobuf.cpp:367:2:367:4 | *msg | provenance | | +| protobuf.cpp:367:2:367:4 | *msg | protobuf.cpp:367:22:367:25 | SerializeToCord output argument | provenance | MaD:312 | +| protobuf.cpp:367:22:367:25 | SerializeToCord output argument | protobuf.cpp:368:7:368:9 | out | provenance | | +| protobuf.cpp:372:15:372:28 | call to source | protobuf.cpp:372:15:372:28 | call to source | provenance | | +| protobuf.cpp:372:15:372:28 | call to source | protobuf.cpp:374:2:374:4 | *msg | provenance | | +| protobuf.cpp:374:2:374:4 | *msg | protobuf.cpp:374:29:374:32 | SerializePartialToCord output argument | provenance | MaD:306 | +| protobuf.cpp:374:29:374:32 | SerializePartialToCord output argument | protobuf.cpp:375:7:375:9 | out | provenance | | +| protobuf.cpp:379:15:379:28 | call to source | protobuf.cpp:379:15:379:28 | call to source | provenance | | +| protobuf.cpp:379:15:379:28 | call to source | protobuf.cpp:381:2:381:4 | *msg | provenance | | +| protobuf.cpp:381:2:381:4 | *msg | protobuf.cpp:381:19:381:22 | AppendToCord output argument | provenance | MaD:272 | +| protobuf.cpp:381:19:381:22 | AppendToCord output argument | protobuf.cpp:382:7:382:9 | out | provenance | | +| protobuf.cpp:386:15:386:28 | call to source | protobuf.cpp:386:15:386:28 | call to source | provenance | | +| protobuf.cpp:386:15:386:28 | call to source | protobuf.cpp:388:2:388:4 | *msg | provenance | | +| protobuf.cpp:388:2:388:4 | *msg | protobuf.cpp:388:26:388:29 | AppendPartialToCord output argument | provenance | MaD:270 | +| protobuf.cpp:388:26:388:29 | AppendPartialToCord output argument | protobuf.cpp:389:7:389:9 | out | provenance | | +| protobuf.cpp:393:15:393:28 | call to source | protobuf.cpp:393:15:393:28 | call to source | provenance | | +| protobuf.cpp:393:15:393:28 | call to source | protobuf.cpp:395:2:395:4 | *msg | provenance | | +| protobuf.cpp:395:2:395:4 | *msg | protobuf.cpp:395:25:395:28 | SerializeToOstream output argument | provenance | MaD:313 | +| protobuf.cpp:395:25:395:28 | SerializeToOstream output argument | protobuf.cpp:396:7:396:9 | out | provenance | | +| protobuf.cpp:400:15:400:28 | call to source | protobuf.cpp:400:15:400:28 | call to source | provenance | | +| protobuf.cpp:400:15:400:28 | call to source | protobuf.cpp:402:2:402:4 | *msg | provenance | | +| protobuf.cpp:402:2:402:4 | *msg | protobuf.cpp:402:32:402:35 | SerializePartialToOstream output argument | provenance | MaD:307 | +| protobuf.cpp:402:32:402:35 | SerializePartialToOstream output argument | protobuf.cpp:403:7:403:9 | out | provenance | | +| protobuf.cpp:407:15:407:28 | call to source | protobuf.cpp:407:15:407:28 | call to source | provenance | | +| protobuf.cpp:407:15:407:28 | call to source | protobuf.cpp:409:2:409:4 | *msg | provenance | | +| protobuf.cpp:409:2:409:4 | *msg | protobuf.cpp:409:32:409:35 | SerializeToZeroCopyStream output argument | provenance | MaD:315 | +| protobuf.cpp:409:32:409:35 | SerializeToZeroCopyStream output argument | protobuf.cpp:410:7:410:9 | out | provenance | | +| protobuf.cpp:414:15:414:28 | call to source | protobuf.cpp:414:15:414:28 | call to source | provenance | | +| protobuf.cpp:414:15:414:28 | call to source | protobuf.cpp:416:2:416:4 | *msg | provenance | | +| protobuf.cpp:416:2:416:4 | *msg | protobuf.cpp:416:39:416:42 | SerializePartialToZeroCopyStream output argument | provenance | MaD:309 | +| protobuf.cpp:416:39:416:42 | SerializePartialToZeroCopyStream output argument | protobuf.cpp:417:7:417:9 | out | provenance | | +| protobuf.cpp:421:15:421:28 | call to source | protobuf.cpp:421:15:421:28 | call to source | provenance | | +| protobuf.cpp:421:15:421:28 | call to source | protobuf.cpp:423:2:423:4 | *msg | provenance | | +| protobuf.cpp:423:2:423:4 | *msg | protobuf.cpp:423:29:423:32 | SerializeToCodedStream output argument | provenance | MaD:311 | +| protobuf.cpp:423:29:423:32 | SerializeToCodedStream output argument | protobuf.cpp:424:7:424:9 | out | provenance | | +| protobuf.cpp:428:15:428:28 | call to source | protobuf.cpp:428:15:428:28 | call to source | provenance | | +| protobuf.cpp:428:15:428:28 | call to source | protobuf.cpp:430:2:430:4 | *msg | provenance | | +| protobuf.cpp:430:2:430:4 | *msg | protobuf.cpp:430:36:430:39 | SerializePartialToCodedStream output argument | provenance | MaD:305 | +| protobuf.cpp:430:36:430:39 | SerializePartialToCodedStream output argument | protobuf.cpp:431:7:431:9 | out | provenance | | +| protobuf.cpp:437:15:437:28 | call to source | protobuf.cpp:437:15:437:28 | call to source | provenance | | +| protobuf.cpp:437:15:437:28 | call to source | protobuf.cpp:438:7:438:9 | *msg | provenance | | +| protobuf.cpp:438:7:438:9 | *msg | protobuf.cpp:438:11:438:27 | call to SerializeAsString | provenance | MaD:301 | +| protobuf.cpp:442:15:442:28 | call to source | protobuf.cpp:442:15:442:28 | call to source | provenance | | +| protobuf.cpp:442:15:442:28 | call to source | protobuf.cpp:443:7:443:9 | *msg | provenance | | +| protobuf.cpp:443:7:443:9 | *msg | protobuf.cpp:443:11:443:34 | call to SerializePartialAsString | provenance | MaD:303 | +| protobuf.cpp:447:15:447:28 | call to source | protobuf.cpp:447:15:447:28 | call to source | provenance | | +| protobuf.cpp:447:15:447:28 | call to source | protobuf.cpp:448:7:448:9 | *msg | provenance | | +| protobuf.cpp:448:7:448:9 | *msg | protobuf.cpp:448:11:448:25 | call to SerializeAsCord | provenance | MaD:300 | +| protobuf.cpp:452:15:452:28 | call to source | protobuf.cpp:452:15:452:28 | call to source | provenance | | +| protobuf.cpp:452:15:452:28 | call to source | protobuf.cpp:453:7:453:9 | *msg | provenance | | +| protobuf.cpp:453:7:453:9 | *msg | protobuf.cpp:453:11:453:32 | call to SerializePartialAsCord | provenance | MaD:302 | | test.cpp:7:47:7:52 | value2 | test.cpp:7:64:7:69 | value2 | provenance | | | test.cpp:7:64:7:69 | value2 | test.cpp:7:5:7:30 | *ymlStepGenerated_with_body | provenance | | | test.cpp:10:10:10:18 | call to ymlSource | test.cpp:10:10:10:18 | call to ymlSource | provenance | Src:MaD:48 | @@ -1424,72 +1391,83 @@ edges | test.cpp:376:13:376:13 | *c [ul] | test.cpp:376:13:376:16 | ul | provenance | | | test.cpp:376:13:376:13 | *c [ul] | test.cpp:376:15:376:16 | ul | provenance | Sink:MaD:3 | | test.cpp:376:13:376:16 | ul | test.cpp:376:15:376:16 | ul | provenance | Sink:MaD:3 | -| test.cpp:397:11:397:19 | call to ymlSource | test.cpp:397:11:397:19 | call to ymlSource | provenance | Src:MaD:48 | -| test.cpp:397:11:397:19 | call to ymlSource | test.cpp:398:38:398:38 | x | provenance | | -| test.cpp:398:15:398:36 | call to makeForwarded [x] | test.cpp:398:15:398:36 | call to makeForwarded [x] | provenance | | -| test.cpp:398:15:398:36 | call to makeForwarded [x] | test.cpp:399:11:399:11 | *e [x] | provenance | | -| test.cpp:398:38:398:38 | x | test.cpp:398:15:398:36 | call to makeForwarded [x] | provenance | | -| test.cpp:399:11:399:11 | *e [x] | test.cpp:399:13:399:13 | x | provenance | | -| test.cpp:399:13:399:13 | x | test.cpp:399:13:399:13 | x | provenance | Sink:MaD:3 | -| test.cpp:404:11:404:19 | call to ymlSource | test.cpp:404:11:404:19 | call to ymlSource | provenance | Src:MaD:48 | -| test.cpp:404:11:404:19 | call to ymlSource | test.cpp:405:22:405:22 | x | provenance | | -| test.cpp:405:3:405:3 | forwardToElement output argument [x] | test.cpp:406:15:406:15 | *f [x] | provenance | | -| test.cpp:405:22:405:22 | x | test.cpp:405:3:405:3 | forwardToElement output argument [x] | provenance | | -| test.cpp:406:15:406:15 | *f [x] | test.cpp:406:17:406:19 | call to get [x] | provenance | MaD:88 | -| test.cpp:406:17:406:19 | call to get [x] | test.cpp:406:17:406:19 | call to get [x] | provenance | | -| test.cpp:406:17:406:19 | call to get [x] | test.cpp:407:11:407:11 | *e [x] | provenance | | -| test.cpp:407:11:407:11 | *e [x] | test.cpp:407:13:407:13 | x | provenance | | -| test.cpp:407:13:407:13 | x | test.cpp:407:13:407:13 | x | provenance | Sink:MaD:3 | -| test.cpp:412:11:412:19 | call to ymlSource | test.cpp:412:11:412:19 | call to ymlSource | provenance | Src:MaD:48 | -| test.cpp:412:11:412:19 | call to ymlSource | test.cpp:413:16:413:16 | *x | provenance | | -| test.cpp:413:3:413:3 | emplace output argument [element, x] | test.cpp:415:15:415:15 | *c [element, x] | provenance | | -| test.cpp:413:16:413:16 | *x | test.cpp:413:3:413:3 | emplace output argument [element, x] | provenance | | -| test.cpp:415:15:415:15 | *c [element, x] | test.cpp:415:20:415:22 | call to get [x] | provenance | MaD:87 | -| test.cpp:415:20:415:22 | call to get [x] | test.cpp:415:20:415:22 | call to get [x] | provenance | | -| test.cpp:415:20:415:22 | call to get [x] | test.cpp:416:11:416:11 | *e [x] | provenance | | -| test.cpp:416:11:416:11 | *e [x] | test.cpp:416:13:416:13 | x | provenance | | -| test.cpp:416:13:416:13 | x | test.cpp:416:13:416:13 | x | provenance | Sink:MaD:3 | -| test.cpp:426:11:426:19 | call to ymlSource | test.cpp:426:11:426:19 | call to ymlSource | provenance | Src:MaD:48 | -| test.cpp:426:11:426:19 | call to ymlSource | test.cpp:427:16:427:16 | *x | provenance | | -| test.cpp:427:3:427:3 | emplace output argument [element, x] | test.cpp:429:34:429:34 | *c [element, x] | provenance | | -| test.cpp:427:16:427:16 | *x | test.cpp:427:3:427:3 | emplace output argument [element, x] | provenance | | -| test.cpp:429:34:429:34 | *c [element, x] | test.cpp:429:39:429:41 | call to get [x] | provenance | MaD:87 | -| test.cpp:429:39:429:41 | call to get [x] | test.cpp:429:39:429:41 | call to get [x] | provenance | | -| test.cpp:429:39:429:41 | call to get [x] | test.cpp:430:11:430:11 | *e [x] | provenance | | -| test.cpp:430:11:430:11 | *e [x] | test.cpp:430:13:430:13 | x | provenance | | -| test.cpp:430:13:430:13 | x | test.cpp:430:13:430:13 | x | provenance | Sink:MaD:3 | -| test.cpp:435:3:435:28 | *ElementWithOverloadedArity [post update] [x] | test.cpp:435:3:435:28 | *this [Return] [x] | provenance | | -| test.cpp:435:34:435:38 | first | test.cpp:435:45:435:49 | first | provenance | | -| test.cpp:435:45:435:49 | first | test.cpp:435:3:435:28 | *ElementWithOverloadedArity [post update] [x] | provenance | | -| test.cpp:436:3:436:28 | *ElementWithOverloadedArity [post update] [x] | test.cpp:436:3:436:28 | *this [Return] [x] | provenance | | -| test.cpp:436:39:436:44 | second | test.cpp:436:51:436:56 | second | provenance | | -| test.cpp:436:51:436:56 | second | test.cpp:436:3:436:28 | *ElementWithOverloadedArity [post update] [x] | provenance | | -| test.cpp:440:11:440:19 | call to ymlSource | test.cpp:440:11:440:19 | call to ymlSource | provenance | Src:MaD:48 | -| test.cpp:440:11:440:19 | call to ymlSource | test.cpp:443:18:443:18 | *x | provenance | | -| test.cpp:440:11:440:19 | call to ymlSource | test.cpp:453:21:453:21 | *x | provenance | | -| test.cpp:443:5:443:5 | emplace output argument [element, x] | test.cpp:444:13:444:13 | *c [element, x] | provenance | | -| test.cpp:443:18:443:18 | *x | test.cpp:435:34:435:38 | first | provenance | | -| test.cpp:443:18:443:18 | *x | test.cpp:443:5:443:5 | emplace output argument [element, x] | provenance | | -| test.cpp:444:13:444:13 | *c [element, x] | test.cpp:444:18:444:20 | *call to get [x] | provenance | MaD:87 | -| test.cpp:444:18:444:20 | *call to get [x] | test.cpp:444:21:444:21 | x | provenance | | -| test.cpp:444:21:444:21 | x | test.cpp:444:21:444:21 | x | provenance | Sink:MaD:3 | -| test.cpp:453:5:453:5 | emplace output argument [element, x] | test.cpp:454:13:454:13 | *c [element, x] | provenance | | -| test.cpp:453:21:453:21 | *x | test.cpp:436:39:436:44 | second | provenance | | -| test.cpp:453:21:453:21 | *x | test.cpp:453:5:453:5 | emplace output argument [element, x] | provenance | | -| test.cpp:454:13:454:13 | *c [element, x] | test.cpp:454:18:454:20 | *call to get [x] | provenance | MaD:87 | -| test.cpp:454:18:454:20 | *call to get [x] | test.cpp:454:21:454:21 | x | provenance | | -| test.cpp:454:21:454:21 | x | test.cpp:454:21:454:21 | x | provenance | Sink:MaD:3 | -| test.cpp:461:5:461:5 | forward output argument | test.cpp:462:13:462:13 | *f | provenance | | -| test.cpp:461:15:461:23 | call to ymlSource | test.cpp:461:15:461:23 | call to ymlSource | provenance | Src:MaD:48 | -| test.cpp:461:15:461:23 | call to ymlSource | test.cpp:461:15:461:25 | call to ymlSource | provenance | | -| test.cpp:461:15:461:25 | call to ymlSource | test.cpp:461:5:461:5 | forward output argument | provenance | | -| test.cpp:462:13:462:13 | *f | test.cpp:462:15:462:17 | call to get | provenance | MaD:88 | -| test.cpp:462:15:462:17 | call to get | test.cpp:462:15:462:17 | call to get | provenance | Sink:MaD:3 | -| test.cpp:466:5:466:5 | forward output argument | test.cpp:467:14:467:14 | *f | provenance | | -| test.cpp:466:15:466:26 | *call to ymlSourcePtr | test.cpp:466:15:466:28 | **call to ymlSourcePtr | provenance | | -| test.cpp:466:15:466:26 | call to ymlSourcePtr | test.cpp:466:15:466:26 | *call to ymlSourcePtr | provenance | Src:MaD:49 | -| test.cpp:466:15:466:28 | **call to ymlSourcePtr | test.cpp:466:5:466:5 | forward output argument | provenance | | -| test.cpp:467:14:467:14 | *f | test.cpp:467:13:467:20 | * ... | provenance | MaD:88 Sink:MaD:3 | +| test.cpp:398:11:398:19 | call to ymlSource | test.cpp:398:11:398:19 | call to ymlSource | provenance | Src:MaD:48 | +| test.cpp:398:11:398:19 | call to ymlSource | test.cpp:399:38:399:38 | x | provenance | | +| test.cpp:399:15:399:36 | call to makeForwarded [x] | test.cpp:399:15:399:36 | call to makeForwarded [x] | provenance | | +| test.cpp:399:15:399:36 | call to makeForwarded [x] | test.cpp:400:11:400:11 | *e [x] | provenance | | +| test.cpp:399:38:399:38 | x | test.cpp:399:15:399:36 | call to makeForwarded [x] | provenance | | +| test.cpp:400:11:400:11 | *e [x] | test.cpp:400:13:400:13 | x | provenance | | +| test.cpp:400:13:400:13 | x | test.cpp:400:13:400:13 | x | provenance | Sink:MaD:3 | +| test.cpp:405:11:405:19 | call to ymlSource | test.cpp:405:11:405:19 | call to ymlSource | provenance | Src:MaD:48 | +| test.cpp:405:11:405:19 | call to ymlSource | test.cpp:406:22:406:22 | x | provenance | | +| test.cpp:406:3:406:3 | forwardToElement output argument [x] | test.cpp:407:15:407:15 | *f [x] | provenance | | +| test.cpp:406:22:406:22 | x | test.cpp:406:3:406:3 | forwardToElement output argument [x] | provenance | | +| test.cpp:407:15:407:15 | *f [x] | test.cpp:407:17:407:19 | call to get [x] | provenance | MaD:88 | +| test.cpp:407:17:407:19 | call to get [x] | test.cpp:407:17:407:19 | call to get [x] | provenance | | +| test.cpp:407:17:407:19 | call to get [x] | test.cpp:408:11:408:11 | *e [x] | provenance | | +| test.cpp:408:11:408:11 | *e [x] | test.cpp:408:13:408:13 | x | provenance | | +| test.cpp:408:13:408:13 | x | test.cpp:408:13:408:13 | x | provenance | Sink:MaD:3 | +| test.cpp:413:11:413:19 | call to ymlSource | test.cpp:413:11:413:19 | call to ymlSource | provenance | Src:MaD:48 | +| test.cpp:413:11:413:19 | call to ymlSource | test.cpp:414:16:414:16 | *x | provenance | | +| test.cpp:414:3:414:3 | emplace output argument [element, x] | test.cpp:416:15:416:15 | *c [element, x] | provenance | | +| test.cpp:414:16:414:16 | *x | test.cpp:414:3:414:3 | emplace output argument [element, x] | provenance | | +| test.cpp:416:15:416:15 | *c [element, x] | test.cpp:416:20:416:22 | call to get [x] | provenance | MaD:87 | +| test.cpp:416:20:416:22 | call to get [x] | test.cpp:416:20:416:22 | call to get [x] | provenance | | +| test.cpp:416:20:416:22 | call to get [x] | test.cpp:417:11:417:11 | *e [x] | provenance | | +| test.cpp:417:11:417:11 | *e [x] | test.cpp:417:13:417:13 | x | provenance | | +| test.cpp:417:13:417:13 | x | test.cpp:417:13:417:13 | x | provenance | Sink:MaD:3 | +| test.cpp:422:3:422:8 | emplace output argument [element] | test.cpp:423:11:423:16 | *scalar [element] | provenance | | +| test.cpp:422:21:422:29 | call to ymlSource | test.cpp:422:21:422:29 | call to ymlSource | provenance | Src:MaD:48 | +| test.cpp:422:21:422:29 | call to ymlSource | test.cpp:422:21:422:31 | call to ymlSource | provenance | | +| test.cpp:422:21:422:31 | call to ymlSource | test.cpp:422:3:422:8 | emplace output argument [element] | provenance | | +| test.cpp:423:11:423:16 | *scalar [element] | test.cpp:423:21:423:23 | call to get | provenance | MaD:87 | +| test.cpp:423:21:423:23 | call to get | test.cpp:423:18:423:20 | call to get | provenance | Sink:MaD:3 | +| test.cpp:426:3:426:9 | emplace output argument [element] | test.cpp:427:12:427:18 | *pointer [element] | provenance | | +| test.cpp:426:22:426:33 | *call to ymlSourcePtr | test.cpp:426:22:426:35 | **call to ymlSourcePtr | provenance | | +| test.cpp:426:22:426:33 | call to ymlSourcePtr | test.cpp:426:22:426:33 | *call to ymlSourcePtr | provenance | Src:MaD:49 | +| test.cpp:426:22:426:35 | **call to ymlSourcePtr | test.cpp:426:3:426:9 | emplace output argument [element] | provenance | | +| test.cpp:427:12:427:18 | *pointer [element] | test.cpp:427:11:427:24 | * ... | provenance | MaD:87 Sink:MaD:3 | +| test.cpp:437:11:437:19 | call to ymlSource | test.cpp:437:11:437:19 | call to ymlSource | provenance | Src:MaD:48 | +| test.cpp:437:11:437:19 | call to ymlSource | test.cpp:438:16:438:16 | *x | provenance | | +| test.cpp:438:3:438:3 | emplace output argument [element, x] | test.cpp:440:34:440:34 | *c [element, x] | provenance | | +| test.cpp:438:16:438:16 | *x | test.cpp:438:3:438:3 | emplace output argument [element, x] | provenance | | +| test.cpp:440:34:440:34 | *c [element, x] | test.cpp:440:39:440:41 | call to get [x] | provenance | MaD:87 | +| test.cpp:440:39:440:41 | call to get [x] | test.cpp:440:39:440:41 | call to get [x] | provenance | | +| test.cpp:440:39:440:41 | call to get [x] | test.cpp:441:11:441:11 | *e [x] | provenance | | +| test.cpp:441:11:441:11 | *e [x] | test.cpp:441:13:441:13 | x | provenance | | +| test.cpp:441:13:441:13 | x | test.cpp:441:13:441:13 | x | provenance | Sink:MaD:3 | +| test.cpp:446:3:446:28 | *ElementWithOverloadedArity [post update] [x] | test.cpp:446:3:446:28 | *this [Return] [x] | provenance | | +| test.cpp:446:34:446:38 | first | test.cpp:446:45:446:49 | first | provenance | | +| test.cpp:446:45:446:49 | first | test.cpp:446:3:446:28 | *ElementWithOverloadedArity [post update] [x] | provenance | | +| test.cpp:447:3:447:28 | *ElementWithOverloadedArity [post update] [x] | test.cpp:447:3:447:28 | *this [Return] [x] | provenance | | +| test.cpp:447:39:447:44 | second | test.cpp:447:51:447:56 | second | provenance | | +| test.cpp:447:51:447:56 | second | test.cpp:447:3:447:28 | *ElementWithOverloadedArity [post update] [x] | provenance | | +| test.cpp:451:11:451:19 | call to ymlSource | test.cpp:451:11:451:19 | call to ymlSource | provenance | Src:MaD:48 | +| test.cpp:451:11:451:19 | call to ymlSource | test.cpp:454:18:454:18 | *x | provenance | | +| test.cpp:451:11:451:19 | call to ymlSource | test.cpp:464:21:464:21 | *x | provenance | | +| test.cpp:454:5:454:5 | emplace output argument [element, x] | test.cpp:455:13:455:13 | *c [element, x] | provenance | | +| test.cpp:454:18:454:18 | *x | test.cpp:446:34:446:38 | first | provenance | | +| test.cpp:454:18:454:18 | *x | test.cpp:454:5:454:5 | emplace output argument [element, x] | provenance | | +| test.cpp:455:13:455:13 | *c [element, x] | test.cpp:455:18:455:20 | *call to get [x] | provenance | MaD:87 | +| test.cpp:455:18:455:20 | *call to get [x] | test.cpp:455:21:455:21 | x | provenance | | +| test.cpp:455:21:455:21 | x | test.cpp:455:21:455:21 | x | provenance | Sink:MaD:3 | +| test.cpp:464:5:464:5 | emplace output argument [element, x] | test.cpp:465:13:465:13 | *c [element, x] | provenance | | +| test.cpp:464:21:464:21 | *x | test.cpp:447:39:447:44 | second | provenance | | +| test.cpp:464:21:464:21 | *x | test.cpp:464:5:464:5 | emplace output argument [element, x] | provenance | | +| test.cpp:465:13:465:13 | *c [element, x] | test.cpp:465:18:465:20 | *call to get [x] | provenance | MaD:87 | +| test.cpp:465:18:465:20 | *call to get [x] | test.cpp:465:21:465:21 | x | provenance | | +| test.cpp:465:21:465:21 | x | test.cpp:465:21:465:21 | x | provenance | Sink:MaD:3 | +| test.cpp:472:5:472:5 | forward output argument | test.cpp:473:13:473:13 | *f | provenance | | +| test.cpp:472:15:472:23 | call to ymlSource | test.cpp:472:15:472:23 | call to ymlSource | provenance | Src:MaD:48 | +| test.cpp:472:15:472:23 | call to ymlSource | test.cpp:472:15:472:25 | call to ymlSource | provenance | | +| test.cpp:472:15:472:25 | call to ymlSource | test.cpp:472:5:472:5 | forward output argument | provenance | | +| test.cpp:473:13:473:13 | *f | test.cpp:473:15:473:17 | call to get | provenance | MaD:88 | +| test.cpp:473:15:473:17 | call to get | test.cpp:473:15:473:17 | call to get | provenance | Sink:MaD:3 | +| test.cpp:477:5:477:5 | forward output argument | test.cpp:478:14:478:14 | *f | provenance | | +| test.cpp:477:15:477:26 | *call to ymlSourcePtr | test.cpp:477:15:477:28 | **call to ymlSourcePtr | provenance | | +| test.cpp:477:15:477:26 | call to ymlSourcePtr | test.cpp:477:15:477:26 | *call to ymlSourcePtr | provenance | Src:MaD:49 | +| test.cpp:477:15:477:28 | **call to ymlSourcePtr | test.cpp:477:5:477:5 | forward output argument | provenance | | +| test.cpp:478:14:478:14 | *f | test.cpp:478:13:478:20 | * ... | provenance | MaD:88 Sink:MaD:3 | | windows.cpp:22:15:22:29 | *call to GetCommandLineA | windows.cpp:24:8:24:11 | * ... | provenance | | | windows.cpp:22:15:22:29 | *call to GetCommandLineA | windows.cpp:27:36:27:38 | *cmd | provenance | | | windows.cpp:22:15:22:29 | call to GetCommandLineA | windows.cpp:22:15:22:29 | *call to GetCommandLineA | provenance | Src:MaD:5 | @@ -1665,128 +1643,94 @@ edges | windows.cpp:1172:21:1172:24 | *guid | windows.cpp:1172:27:1172:29 | StringFromGUID2 output argument | provenance | MaD:76 | | windows.cpp:1172:27:1172:29 | StringFromGUID2 output argument | windows.cpp:1174:10:1174:13 | * ... | provenance | | nodes -| asio_streams.cpp:116:34:116:44 | read_until output argument | semmle.label | read_until output argument | -| asio_streams.cpp:120:7:120:17 | recv_buffer | semmle.label | recv_buffer | -| asio_streams.cpp:122:29:122:39 | recv_buffer | semmle.label | recv_buffer | -| asio_streams.cpp:126:37:126:44 | call to source | semmle.label | call to source | -| asio_streams.cpp:127:7:127:14 | send_str | semmle.label | send_str | -| asio_streams.cpp:129:44:129:62 | call to buffer | semmle.label | call to buffer | -| asio_streams.cpp:129:44:129:62 | call to buffer | semmle.label | call to buffer | -| asio_streams.cpp:129:64:129:71 | *send_str | semmle.label | *send_str | -| asio_streams.cpp:130:7:130:17 | send_buffer | semmle.label | send_buffer | -| asio_streams.cpp:132:29:132:39 | send_buffer | semmle.label | send_buffer | -| asio_streams.cpp:143:19:143:26 | call to source | semmle.label | call to source | -| asio_streams.cpp:145:29:145:36 | call to source | semmle.label | call to source | -| asio_streams.cpp:148:16:148:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:148:24:148:27 | *host | semmle.label | *host | -| asio_streams.cpp:149:16:149:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:149:24:149:27 | *host | semmle.label | *host | -| asio_streams.cpp:150:16:150:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:150:24:150:27 | *host | semmle.label | *host | +| asio_streams.cpp:109:34:109:44 | read_until output argument | semmle.label | read_until output argument | +| asio_streams.cpp:113:7:113:17 | recv_buffer | semmle.label | recv_buffer | +| asio_streams.cpp:115:29:115:39 | recv_buffer | semmle.label | recv_buffer | +| asio_streams.cpp:119:37:119:44 | call to source | semmle.label | call to source | +| asio_streams.cpp:120:7:120:14 | send_str | semmle.label | send_str | +| asio_streams.cpp:122:44:122:62 | call to buffer | semmle.label | call to buffer | +| asio_streams.cpp:122:44:122:62 | call to buffer | semmle.label | call to buffer | +| asio_streams.cpp:122:64:122:71 | *send_str | semmle.label | *send_str | +| asio_streams.cpp:123:7:123:17 | send_buffer | semmle.label | send_buffer | +| asio_streams.cpp:125:29:125:39 | send_buffer | semmle.label | send_buffer | +| asio_streams.cpp:136:19:136:26 | call to source | semmle.label | call to source | +| asio_streams.cpp:141:16:141:22 | call to resolve | semmle.label | call to resolve | +| asio_streams.cpp:141:24:141:27 | *host | semmle.label | *host | +| asio_streams.cpp:142:16:142:22 | call to resolve | semmle.label | call to resolve | +| asio_streams.cpp:142:24:142:27 | *host | semmle.label | *host | +| asio_streams.cpp:143:16:143:22 | call to resolve | semmle.label | call to resolve | +| asio_streams.cpp:143:24:143:27 | *host | semmle.label | *host | +| asio_streams.cpp:144:16:144:22 | call to resolve | semmle.label | call to resolve | +| asio_streams.cpp:144:24:144:27 | *host | semmle.label | *host | | asio_streams.cpp:151:16:151:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:151:24:151:27 | *host | semmle.label | *host | +| asio_streams.cpp:151:34:151:37 | *host | semmle.label | *host | +| asio_streams.cpp:152:16:152:22 | call to resolve | semmle.label | call to resolve | +| asio_streams.cpp:152:34:152:37 | *host | semmle.label | *host | | asio_streams.cpp:153:16:153:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:153:24:153:32 | host_view | semmle.label | host_view | +| asio_streams.cpp:153:34:153:37 | *host | semmle.label | *host | | asio_streams.cpp:154:16:154:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:154:24:154:32 | host_view | semmle.label | host_view | -| asio_streams.cpp:155:16:155:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:155:24:155:32 | host_view | semmle.label | host_view | -| asio_streams.cpp:156:16:156:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:156:24:156:32 | host_view | semmle.label | host_view | -| asio_streams.cpp:158:16:158:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:158:34:158:37 | *host | semmle.label | *host | -| asio_streams.cpp:159:16:159:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:159:34:159:37 | *host | semmle.label | *host | -| asio_streams.cpp:160:16:160:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:160:34:160:37 | *host | semmle.label | *host | -| asio_streams.cpp:161:16:161:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:161:34:161:37 | *host | semmle.label | *host | -| asio_streams.cpp:163:16:163:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:163:34:163:42 | host_view | semmle.label | host_view | -| asio_streams.cpp:164:16:164:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:164:34:164:42 | host_view | semmle.label | host_view | -| asio_streams.cpp:165:16:165:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:165:34:165:42 | host_view | semmle.label | host_view | -| asio_streams.cpp:166:16:166:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:166:34:166:42 | host_view | semmle.label | host_view | -| asio_streams.cpp:175:22:175:29 | call to source | semmle.label | call to source | -| asio_streams.cpp:177:32:177:39 | call to source | semmle.label | call to source | -| asio_streams.cpp:179:16:179:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:179:30:179:36 | *service | semmle.label | *service | -| asio_streams.cpp:180:16:180:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:180:30:180:36 | *service | semmle.label | *service | -| asio_streams.cpp:181:16:181:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:181:30:181:36 | *service | semmle.label | *service | +| asio_streams.cpp:154:34:154:37 | *host | semmle.label | *host | +| asio_streams.cpp:168:22:168:29 | call to source | semmle.label | call to source | +| asio_streams.cpp:172:16:172:22 | call to resolve | semmle.label | call to resolve | +| asio_streams.cpp:172:30:172:36 | *service | semmle.label | *service | +| asio_streams.cpp:173:16:173:22 | call to resolve | semmle.label | call to resolve | +| asio_streams.cpp:173:30:173:36 | *service | semmle.label | *service | +| asio_streams.cpp:174:16:174:22 | call to resolve | semmle.label | call to resolve | +| asio_streams.cpp:174:30:174:36 | *service | semmle.label | *service | +| asio_streams.cpp:175:16:175:22 | call to resolve | semmle.label | call to resolve | +| asio_streams.cpp:175:30:175:36 | *service | semmle.label | *service | | asio_streams.cpp:182:16:182:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:182:30:182:36 | *service | semmle.label | *service | +| asio_streams.cpp:182:40:182:46 | *service | semmle.label | *service | +| asio_streams.cpp:183:16:183:22 | call to resolve | semmle.label | call to resolve | +| asio_streams.cpp:183:40:183:46 | *service | semmle.label | *service | | asio_streams.cpp:184:16:184:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:184:35:184:46 | service_view | semmle.label | service_view | +| asio_streams.cpp:184:40:184:46 | *service | semmle.label | *service | | asio_streams.cpp:185:16:185:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:185:35:185:46 | service_view | semmle.label | service_view | -| asio_streams.cpp:186:16:186:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:186:35:186:46 | service_view | semmle.label | service_view | -| asio_streams.cpp:187:16:187:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:187:35:187:46 | service_view | semmle.label | service_view | -| asio_streams.cpp:189:16:189:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:189:40:189:46 | *service | semmle.label | *service | -| asio_streams.cpp:190:16:190:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:190:40:190:46 | *service | semmle.label | *service | -| asio_streams.cpp:191:16:191:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:191:40:191:46 | *service | semmle.label | *service | -| asio_streams.cpp:192:16:192:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:192:40:192:46 | *service | semmle.label | *service | -| asio_streams.cpp:194:16:194:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:194:45:194:56 | service_view | semmle.label | service_view | -| asio_streams.cpp:195:16:195:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:195:45:195:56 | service_view | semmle.label | service_view | -| asio_streams.cpp:196:16:196:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:196:45:196:56 | service_view | semmle.label | service_view | -| asio_streams.cpp:197:16:197:22 | call to resolve | semmle.label | call to resolve | -| asio_streams.cpp:197:45:197:56 | service_view | semmle.label | service_view | -| azure.cpp:253:48:253:60 | *call to GetBodyStream | semmle.label | *call to GetBodyStream | -| azure.cpp:253:48:253:60 | call to GetBodyStream | semmle.label | call to GetBodyStream | -| azure.cpp:257:5:257:8 | *resp | semmle.label | *resp | -| azure.cpp:257:16:257:21 | Read output argument | semmle.label | Read output argument | -| azure.cpp:258:10:258:16 | * ... | semmle.label | * ... | -| azure.cpp:262:5:262:8 | *resp | semmle.label | *resp | -| azure.cpp:262:23:262:28 | ReadToCount output argument | semmle.label | ReadToCount output argument | -| azure.cpp:263:10:263:16 | * ... | semmle.label | * ... | -| azure.cpp:266:38:266:41 | *resp | semmle.label | *resp | -| azure.cpp:266:44:266:52 | call to ReadToEnd [element] | semmle.label | call to ReadToEnd [element] | -| azure.cpp:266:44:266:52 | call to ReadToEnd [element] | semmle.label | call to ReadToEnd [element] | -| azure.cpp:267:10:267:12 | vec | semmle.label | vec | -| azure.cpp:267:10:267:12 | vec [element] | semmle.label | vec [element] | -| azure.cpp:273:52:273:61 | call to GetHeaders | semmle.label | call to GetHeaders | -| azure.cpp:273:62:273:64 | call to GetHeaders | semmle.label | call to GetHeaders | -| azure.cpp:274:10:274:29 | call to operator[] | semmle.label | call to operator[] | -| azure.cpp:274:14:274:29 | call to operator[] | semmle.label | call to operator[] | -| azure.cpp:274:14:274:29 | call to operator[] | semmle.label | call to operator[] | -| azure.cpp:274:14:274:29 | call to operator[] | semmle.label | call to operator[] | -| azure.cpp:277:38:277:44 | call to GetBody | semmle.label | call to GetBody | -| azure.cpp:277:45:277:47 | call to GetBody | semmle.label | call to GetBody | -| azure.cpp:278:10:278:13 | body | semmle.label | body | -| azure.cpp:278:10:278:13 | body | semmle.label | body | -| azure.cpp:278:10:278:13 | body | semmle.label | body | -| azure.cpp:281:68:281:84 | *call to ExtractBodyStream | semmle.label | *call to ExtractBodyStream | -| azure.cpp:281:68:281:84 | call to ExtractBodyStream | semmle.label | call to ExtractBodyStream | -| azure.cpp:282:10:282:38 | call to ReadToEnd | semmle.label | call to ReadToEnd | -| azure.cpp:282:21:282:23 | *call to get | semmle.label | *call to get | -| azure.cpp:282:28:282:36 | call to ReadToEnd [element] | semmle.label | call to ReadToEnd [element] | -| azure.cpp:282:28:282:36 | call to ReadToEnd [element] | semmle.label | call to ReadToEnd [element] | -| azure.cpp:289:24:289:56 | call to GetHeader | semmle.label | call to GetHeader | -| azure.cpp:289:32:289:40 | call to GetHeader | semmle.label | call to GetHeader | -| azure.cpp:289:32:289:40 | call to GetHeader | semmle.label | call to GetHeader | -| azure.cpp:289:63:289:65 | call to Value | semmle.label | call to Value | -| azure.cpp:289:63:289:65 | call to Value | semmle.label | call to Value | -| azure.cpp:290:10:290:20 | headerValue | semmle.label | headerValue | -| azure.cpp:290:10:290:20 | headerValue | semmle.label | headerValue | -| azure.cpp:290:10:290:20 | headerValue | semmle.label | headerValue | -| azure.cpp:293:58:293:67 | call to GetHeaders | semmle.label | call to GetHeaders | -| azure.cpp:293:58:293:67 | call to GetHeaders | semmle.label | call to GetHeaders | -| azure.cpp:294:38:294:53 | call to operator[] | semmle.label | call to operator[] | -| azure.cpp:295:10:295:20 | contentType | semmle.label | contentType | -| azure.cpp:295:10:295:20 | contentType | semmle.label | contentType | -| azure.cpp:295:10:295:20 | contentType | semmle.label | contentType | +| asio_streams.cpp:185:40:185:46 | *service | semmle.label | *service | +| azure.cpp:216:48:216:60 | *call to GetBodyStream | semmle.label | *call to GetBodyStream | +| azure.cpp:216:48:216:60 | call to GetBodyStream | semmle.label | call to GetBodyStream | +| azure.cpp:220:5:220:8 | *resp | semmle.label | *resp | +| azure.cpp:220:16:220:21 | Read output argument | semmle.label | Read output argument | +| azure.cpp:221:10:221:16 | * ... | semmle.label | * ... | +| azure.cpp:225:5:225:8 | *resp | semmle.label | *resp | +| azure.cpp:225:23:225:28 | ReadToCount output argument | semmle.label | ReadToCount output argument | +| azure.cpp:226:10:226:16 | * ... | semmle.label | * ... | +| azure.cpp:229:38:229:41 | *resp | semmle.label | *resp | +| azure.cpp:229:44:229:52 | call to ReadToEnd [element] | semmle.label | call to ReadToEnd [element] | +| azure.cpp:229:44:229:52 | call to ReadToEnd [element] | semmle.label | call to ReadToEnd [element] | +| azure.cpp:230:10:230:12 | *vec [element] | semmle.label | *vec [element] | +| azure.cpp:230:10:230:12 | call to vector | semmle.label | call to vector | +| azure.cpp:230:10:230:12 | call to vector [element] | semmle.label | call to vector [element] | +| azure.cpp:236:52:236:61 | call to GetHeaders | semmle.label | call to GetHeaders | +| azure.cpp:237:14:237:29 | call to operator[] | semmle.label | call to operator[] | +| azure.cpp:240:38:240:44 | call to GetBody | semmle.label | call to GetBody | +| azure.cpp:241:10:241:13 | call to vector | semmle.label | call to vector | +| azure.cpp:241:10:241:13 | call to vector | semmle.label | call to vector | +| azure.cpp:241:10:241:13 | call to vector | semmle.label | call to vector | +| azure.cpp:244:68:244:84 | *call to ExtractBodyStream | semmle.label | *call to ExtractBodyStream | +| azure.cpp:244:68:244:84 | call to ExtractBodyStream | semmle.label | call to ExtractBodyStream | +| azure.cpp:245:10:245:38 | call to ReadToEnd | semmle.label | call to ReadToEnd | +| azure.cpp:245:21:245:23 | *call to get | semmle.label | *call to get | +| azure.cpp:245:28:245:36 | call to ReadToEnd [element] | semmle.label | call to ReadToEnd [element] | +| azure.cpp:245:28:245:36 | call to ReadToEnd [element] | semmle.label | call to ReadToEnd [element] | +| azure.cpp:255:24:255:56 | call to GetHeader | semmle.label | call to GetHeader | +| azure.cpp:255:32:255:40 | call to GetHeader | semmle.label | call to GetHeader | +| azure.cpp:255:32:255:40 | call to GetHeader | semmle.label | call to GetHeader | +| azure.cpp:255:63:255:65 | call to Value | semmle.label | call to Value | +| azure.cpp:255:63:255:65 | call to Value | semmle.label | call to Value | +| azure.cpp:256:10:256:20 | headerValue | semmle.label | headerValue | +| azure.cpp:259:58:259:67 | call to GetHeaders | semmle.label | call to GetHeaders | +| azure.cpp:259:58:259:67 | call to GetHeaders | semmle.label | call to GetHeaders | +| azure.cpp:260:38:260:53 | call to operator[] | semmle.label | call to operator[] | +| azure.cpp:261:10:261:20 | contentType | semmle.label | contentType | +| azure.cpp:268:3:268:5 | SetQueryParameters output argument | semmle.label | SetQueryParameters output argument | +| azure.cpp:268:26:268:45 | call to GetHeaders | semmle.label | call to GetHeaders | +| azure.cpp:268:34:268:43 | call to GetHeaders | semmle.label | call to GetHeaders | +| azure.cpp:268:34:268:43 | call to GetHeaders | semmle.label | call to GetHeaders | +| azure.cpp:269:8:269:10 | *url | semmle.label | *url | +| azure.cpp:269:12:269:29 | call to GetQueryParameters | semmle.label | call to GetQueryParameters | +| azure.cpp:269:12:269:29 | call to GetQueryParameters | semmle.label | call to GetQueryParameters | +| azure.cpp:269:32:269:40 | call to operator[] | semmle.label | call to operator[] | | bal.cpp:128:19:128:26 | call to source | semmle.label | call to source | | bal.cpp:129:23:129:51 | *call to data | semmle.label | *call to data | | bal.cpp:132:17:132:18 | *sb | semmle.label | *sb | @@ -2272,423 +2216,423 @@ nodes | bmqa.cpp:393:8:393:18 | *call to operator= | semmle.label | *call to operator= | | bmqa.cpp:393:16:393:17 | *it | semmle.label | *it | | bmqa.cpp:393:24:393:26 | *call to name | semmle.label | *call to name | +| bslx.cpp:145:33:145:40 | call to source | semmle.label | call to source | +| bslx.cpp:146:34:146:39 | call to ByteInStream | semmle.label | call to ByteInStream | +| bslx.cpp:146:41:146:51 | *call to data | semmle.label | *call to data | +| bslx.cpp:148:2:148:7 | *stream | semmle.label | *stream | +| bslx.cpp:148:22:148:24 | getArrayInt8 output argument | semmle.label | getArrayInt8 output argument | +| bslx.cpp:149:7:149:10 | * ... | semmle.label | * ... | +| bslx.cpp:153:33:153:40 | call to source | semmle.label | call to source | +| bslx.cpp:154:34:154:39 | call to ByteInStream | semmle.label | call to ByteInStream | +| bslx.cpp:154:41:154:51 | *call to data | semmle.label | *call to data | +| bslx.cpp:156:2:156:7 | *stream | semmle.label | *stream | +| bslx.cpp:156:19:156:21 | getString output argument | semmle.label | getString output argument | +| bslx.cpp:157:7:157:17 | * ... | semmle.label | * ... | | bslx.cpp:161:33:161:40 | call to source | semmle.label | call to source | | bslx.cpp:162:34:162:39 | call to ByteInStream | semmle.label | call to ByteInStream | -| bslx.cpp:162:46:162:49 | *call to data | semmle.label | *call to data | -| bslx.cpp:164:2:164:7 | *stream | semmle.label | *stream | -| bslx.cpp:164:22:164:24 | getArrayInt8 output argument | semmle.label | getArrayInt8 output argument | -| bslx.cpp:165:7:165:10 | * ... | semmle.label | * ... | -| bslx.cpp:169:33:169:40 | call to source | semmle.label | call to source | -| bslx.cpp:170:34:170:39 | call to ByteInStream | semmle.label | call to ByteInStream | -| bslx.cpp:170:46:170:49 | *call to data | semmle.label | *call to data | -| bslx.cpp:172:2:172:7 | *stream | semmle.label | *stream | -| bslx.cpp:172:19:172:21 | getString output argument | semmle.label | getString output argument | -| bslx.cpp:173:7:173:17 | * ... | semmle.label | * ... | -| bslx.cpp:177:33:177:40 | call to source | semmle.label | call to source | -| bslx.cpp:178:34:178:39 | call to ByteInStream | semmle.label | call to ByteInStream | -| bslx.cpp:178:46:178:49 | *call to data | semmle.label | *call to data | -| bslx.cpp:181:2:181:7 | *stream | semmle.label | *stream | -| bslx.cpp:181:17:181:20 | *call to getInt32 | semmle.label | *call to getInt32 | -| bslx.cpp:181:31:181:33 | getString output argument | semmle.label | getString output argument | -| bslx.cpp:182:7:182:17 | * ... | semmle.label | * ... | -| bslx.cpp:187:33:187:40 | call to source | semmle.label | call to source | -| bslx.cpp:188:2:188:7 | reset output argument | semmle.label | reset output argument | -| bslx.cpp:188:20:188:23 | *call to data | semmle.label | *call to data | -| bslx.cpp:190:2:190:7 | *stream | semmle.label | *stream | -| bslx.cpp:190:19:190:21 | getString output argument | semmle.label | getString output argument | -| bslx.cpp:191:7:191:17 | * ... | semmle.label | * ... | -| bslx.cpp:195:33:195:40 | call to source | semmle.label | call to source | -| bslx.cpp:196:20:196:45 | *call to data | semmle.label | *call to data | -| bslx.cpp:197:50:197:55 | call to GenericInStream | semmle.label | call to GenericInStream | -| bslx.cpp:197:57:197:58 | *sb | semmle.label | *sb | -| bslx.cpp:199:2:199:7 | *stream | semmle.label | *stream | -| bslx.cpp:199:19:199:21 | getString output argument | semmle.label | getString output argument | -| bslx.cpp:200:7:200:17 | * ... | semmle.label | * ... | -| bslx.cpp:213:33:213:40 | call to source | semmle.label | call to source | -| bslx.cpp:214:34:214:39 | call to ByteInStream | semmle.label | call to ByteInStream | -| bslx.cpp:214:46:214:49 | *call to data | semmle.label | *call to data | -| bslx.cpp:216:53:216:58 | *stream | semmle.label | *stream | -| bslx.cpp:216:61:216:63 | bdexStreamIn output argument | semmle.label | bdexStreamIn output argument | -| bslx.cpp:217:7:217:17 | * ... | semmle.label | * ... | -| bslx.cpp:223:33:223:40 | call to source | semmle.label | call to source | -| bslx.cpp:224:34:224:39 | call to ByteInStream | semmle.label | call to ByteInStream | -| bslx.cpp:224:46:224:49 | *call to data | semmle.label | *call to data | -| bslx.cpp:247:2:247:7 | *stream | semmle.label | *stream | -| bslx.cpp:247:18:247:21 | *call to getLength | semmle.label | *call to getLength | -| bslx.cpp:247:32:247:35 | *call to getVersion | semmle.label | *call to getVersion | -| bslx.cpp:247:43:247:46 | *call to getInt8 | semmle.label | *call to getInt8 | -| bslx.cpp:247:55:247:59 | *call to getUint8 | semmle.label | *call to getUint8 | -| bslx.cpp:247:68:247:71 | *call to getInt16 | semmle.label | *call to getInt16 | -| bslx.cpp:247:81:247:85 | *call to getUint16 | semmle.label | *call to getUint16 | -| bslx.cpp:247:94:247:97 | *call to getInt24 | semmle.label | *call to getInt24 | -| bslx.cpp:247:107:247:111 | *call to getUint24 | semmle.label | *call to getUint24 | -| bslx.cpp:247:120:247:123 | *call to getInt32 | semmle.label | *call to getInt32 | -| bslx.cpp:247:133:247:137 | *call to getUint32 | semmle.label | *call to getUint32 | -| bslx.cpp:247:146:247:150 | *call to getInt40 | semmle.label | *call to getInt40 | -| bslx.cpp:247:160:247:165 | *call to getUint40 | semmle.label | *call to getUint40 | -| bslx.cpp:247:174:247:178 | *call to getInt48 | semmle.label | *call to getInt48 | -| bslx.cpp:247:188:247:193 | *call to getUint48 | semmle.label | *call to getUint48 | -| bslx.cpp:247:202:247:206 | *call to getInt56 | semmle.label | *call to getInt56 | -| bslx.cpp:247:216:247:221 | *call to getUint56 | semmle.label | *call to getUint56 | -| bslx.cpp:247:230:247:234 | *call to getInt64 | semmle.label | *call to getInt64 | -| bslx.cpp:247:244:247:249 | *call to getUint64 | semmle.label | *call to getUint64 | -| bslx.cpp:247:260:247:263 | *call to getFloat32 | semmle.label | *call to getFloat32 | -| bslx.cpp:247:274:247:277 | *call to getFloat64 | semmle.label | *call to getFloat64 | -| bslx.cpp:247:287:247:292 | *call to getString | semmle.label | *call to getString | -| bslx.cpp:247:305:247:315 | *call to getArrayInt8 | semmle.label | *call to getArrayInt8 | -| bslx.cpp:247:329:247:340 | *call to getArrayUint8 | semmle.label | *call to getArrayUint8 | -| bslx.cpp:247:354:247:364 | *call to getArrayInt16 | semmle.label | *call to getArrayInt16 | -| bslx.cpp:247:379:247:390 | *call to getArrayUint16 | semmle.label | *call to getArrayUint16 | -| bslx.cpp:247:404:247:414 | *call to getArrayInt24 | semmle.label | *call to getArrayInt24 | -| bslx.cpp:247:429:247:440 | *call to getArrayUint24 | semmle.label | *call to getArrayUint24 | -| bslx.cpp:247:454:247:464 | *call to getArrayInt32 | semmle.label | *call to getArrayInt32 | -| bslx.cpp:247:479:247:490 | *call to getArrayUint32 | semmle.label | *call to getArrayUint32 | -| bslx.cpp:247:504:247:515 | *call to getArrayInt40 | semmle.label | *call to getArrayInt40 | -| bslx.cpp:247:530:247:542 | *call to getArrayUint40 | semmle.label | *call to getArrayUint40 | -| bslx.cpp:247:556:247:567 | *call to getArrayInt48 | semmle.label | *call to getArrayInt48 | -| bslx.cpp:247:582:247:594 | *call to getArrayUint48 | semmle.label | *call to getArrayUint48 | -| bslx.cpp:247:608:247:619 | *call to getArrayInt56 | semmle.label | *call to getArrayInt56 | -| bslx.cpp:247:634:247:646 | *call to getArrayUint56 | semmle.label | *call to getArrayUint56 | -| bslx.cpp:247:660:247:671 | *call to getArrayInt64 | semmle.label | *call to getArrayInt64 | -| bslx.cpp:247:686:247:698 | *call to getArrayUint64 | semmle.label | *call to getArrayUint64 | -| bslx.cpp:247:714:247:724 | *call to getArrayFloat32 | semmle.label | *call to getArrayFloat32 | -| bslx.cpp:247:740:247:750 | *call to getArrayFloat64 | semmle.label | *call to getArrayFloat64 | -| bslx.cpp:247:761:247:763 | getString output argument | semmle.label | getString output argument | -| bslx.cpp:248:7:248:17 | * ... | semmle.label | * ... | -| bslx.cpp:252:33:252:40 | call to source | semmle.label | call to source | -| bslx.cpp:253:20:253:45 | *call to data | semmle.label | *call to data | -| bslx.cpp:254:50:254:55 | call to GenericInStream | semmle.label | call to GenericInStream | -| bslx.cpp:254:57:254:58 | *sb | semmle.label | *sb | -| bslx.cpp:277:2:277:7 | *stream | semmle.label | *stream | -| bslx.cpp:277:18:277:21 | *call to getLength | semmle.label | *call to getLength | -| bslx.cpp:277:32:277:35 | *call to getVersion | semmle.label | *call to getVersion | -| bslx.cpp:277:43:277:46 | *call to getInt8 | semmle.label | *call to getInt8 | -| bslx.cpp:277:55:277:59 | *call to getUint8 | semmle.label | *call to getUint8 | -| bslx.cpp:277:68:277:71 | *call to getInt16 | semmle.label | *call to getInt16 | -| bslx.cpp:277:81:277:85 | *call to getUint16 | semmle.label | *call to getUint16 | -| bslx.cpp:277:94:277:97 | *call to getInt24 | semmle.label | *call to getInt24 | -| bslx.cpp:277:107:277:111 | *call to getUint24 | semmle.label | *call to getUint24 | -| bslx.cpp:277:120:277:123 | *call to getInt32 | semmle.label | *call to getInt32 | -| bslx.cpp:277:133:277:137 | *call to getUint32 | semmle.label | *call to getUint32 | -| bslx.cpp:277:146:277:150 | *call to getInt40 | semmle.label | *call to getInt40 | -| bslx.cpp:277:160:277:165 | *call to getUint40 | semmle.label | *call to getUint40 | -| bslx.cpp:277:174:277:178 | *call to getInt48 | semmle.label | *call to getInt48 | -| bslx.cpp:277:188:277:193 | *call to getUint48 | semmle.label | *call to getUint48 | -| bslx.cpp:277:202:277:206 | *call to getInt56 | semmle.label | *call to getInt56 | -| bslx.cpp:277:216:277:221 | *call to getUint56 | semmle.label | *call to getUint56 | -| bslx.cpp:277:230:277:234 | *call to getInt64 | semmle.label | *call to getInt64 | -| bslx.cpp:277:244:277:249 | *call to getUint64 | semmle.label | *call to getUint64 | -| bslx.cpp:277:260:277:263 | *call to getFloat32 | semmle.label | *call to getFloat32 | -| bslx.cpp:277:274:277:277 | *call to getFloat64 | semmle.label | *call to getFloat64 | -| bslx.cpp:277:287:277:292 | *call to getString | semmle.label | *call to getString | -| bslx.cpp:277:305:277:315 | *call to getArrayInt8 | semmle.label | *call to getArrayInt8 | -| bslx.cpp:277:329:277:340 | *call to getArrayUint8 | semmle.label | *call to getArrayUint8 | -| bslx.cpp:277:354:277:364 | *call to getArrayInt16 | semmle.label | *call to getArrayInt16 | -| bslx.cpp:277:379:277:390 | *call to getArrayUint16 | semmle.label | *call to getArrayUint16 | -| bslx.cpp:277:404:277:414 | *call to getArrayInt24 | semmle.label | *call to getArrayInt24 | -| bslx.cpp:277:429:277:440 | *call to getArrayUint24 | semmle.label | *call to getArrayUint24 | -| bslx.cpp:277:454:277:464 | *call to getArrayInt32 | semmle.label | *call to getArrayInt32 | -| bslx.cpp:277:479:277:490 | *call to getArrayUint32 | semmle.label | *call to getArrayUint32 | -| bslx.cpp:277:504:277:515 | *call to getArrayInt40 | semmle.label | *call to getArrayInt40 | -| bslx.cpp:277:530:277:542 | *call to getArrayUint40 | semmle.label | *call to getArrayUint40 | -| bslx.cpp:277:556:277:567 | *call to getArrayInt48 | semmle.label | *call to getArrayInt48 | -| bslx.cpp:277:582:277:594 | *call to getArrayUint48 | semmle.label | *call to getArrayUint48 | -| bslx.cpp:277:608:277:619 | *call to getArrayInt56 | semmle.label | *call to getArrayInt56 | -| bslx.cpp:277:634:277:646 | *call to getArrayUint56 | semmle.label | *call to getArrayUint56 | -| bslx.cpp:277:660:277:671 | *call to getArrayInt64 | semmle.label | *call to getArrayInt64 | -| bslx.cpp:277:686:277:698 | *call to getArrayUint64 | semmle.label | *call to getArrayUint64 | -| bslx.cpp:277:714:277:724 | *call to getArrayFloat32 | semmle.label | *call to getArrayFloat32 | -| bslx.cpp:277:740:277:750 | *call to getArrayFloat64 | semmle.label | *call to getArrayFloat64 | -| bslx.cpp:277:761:277:763 | getString output argument | semmle.label | getString output argument | -| bslx.cpp:278:7:278:17 | * ... | semmle.label | * ... | -| bslx.cpp:282:33:282:40 | call to source | semmle.label | call to source | -| bslx.cpp:283:34:283:39 | call to ByteInStream | semmle.label | call to ByteInStream | -| bslx.cpp:283:46:283:49 | *call to data | semmle.label | *call to data | -| bslx.cpp:285:53:285:58 | *stream | semmle.label | *stream | -| bslx.cpp:285:61:285:61 | bdexStreamIn output argument | semmle.label | bdexStreamIn output argument | -| bslx.cpp:286:7:286:7 | x | semmle.label | x | -| bslx.cpp:287:53:287:58 | *stream | semmle.label | *stream | -| bslx.cpp:287:61:287:61 | bdexStreamIn output argument | semmle.label | bdexStreamIn output argument | -| bslx.cpp:288:7:288:7 | x | semmle.label | x | -| bslx.cpp:290:52:290:66 | *call to bdexStreamIn | semmle.label | *call to bdexStreamIn | -| bslx.cpp:290:53:290:58 | *stream | semmle.label | *stream | -| bslx.cpp:290:77:290:79 | getString output argument | semmle.label | getString output argument | -| bslx.cpp:291:7:291:17 | * ... | semmle.label | * ... | -| bslx.cpp:295:33:295:40 | call to source | semmle.label | call to source | -| bslx.cpp:296:34:296:39 | call to ByteInStream | semmle.label | call to ByteInStream | -| bslx.cpp:296:46:296:49 | *call to data | semmle.label | *call to data | -| bslx.cpp:298:53:298:58 | *stream | semmle.label | *stream | -| bslx.cpp:298:61:298:63 | bdexStreamIn output argument | semmle.label | bdexStreamIn output argument | -| bslx.cpp:299:7:299:17 | * ... | semmle.label | * ... | -| bslx.cpp:309:33:309:40 | call to source | semmle.label | call to source | -| bslx.cpp:310:34:310:39 | call to ByteInStream | semmle.label | call to ByteInStream | -| bslx.cpp:310:46:310:49 | *call to data | semmle.label | *call to data | -| bslx.cpp:312:53:312:58 | *stream | semmle.label | *stream | -| bslx.cpp:312:61:312:63 | bdexStreamIn output argument | semmle.label | bdexStreamIn output argument | -| bslx.cpp:313:7:313:9 | out | semmle.label | out | -| bslx.cpp:322:40:322:60 | call to source | semmle.label | call to source | -| bslx.cpp:322:40:322:60 | call to source | semmle.label | call to source | -| bslx.cpp:323:2:323:7 | reset output argument | semmle.label | reset output argument | -| bslx.cpp:323:15:323:18 | *data | semmle.label | *data | -| bslx.cpp:325:2:325:7 | *stream | semmle.label | *stream | -| bslx.cpp:325:19:325:21 | getString output argument | semmle.label | getString output argument | -| bslx.cpp:326:7:326:17 | * ... | semmle.label | * ... | -| bslx.cpp:330:33:330:40 | call to source | semmle.label | call to source | -| bslx.cpp:331:34:331:39 | call to ByteInStream | semmle.label | call to ByteInStream | -| bslx.cpp:331:46:331:49 | *call to data | semmle.label | *call to data | -| bslx.cpp:334:2:334:7 | *stream | semmle.label | *stream | -| bslx.cpp:334:19:334:21 | getString output argument | semmle.label | getString output argument | -| bslx.cpp:335:7:335:17 | * ... | semmle.label | * ... | -| bslx.cpp:349:33:349:40 | call to source | semmle.label | call to source | -| bslx.cpp:350:34:350:39 | call to ByteInStream | semmle.label | call to ByteInStream | -| bslx.cpp:350:46:350:49 | *call to data | semmle.label | *call to data | -| bslx.cpp:354:2:354:7 | *stream | semmle.label | *stream | -| bslx.cpp:354:19:354:21 | getString output argument | semmle.label | getString output argument | -| bslx.cpp:356:7:356:17 | * ... | semmle.label | * ... | -| protobuf.cpp:117:27:117:51 | call to source | semmle.label | call to source | -| protobuf.cpp:117:27:117:51 | call to source | semmle.label | call to source | -| protobuf.cpp:118:2:118:4 | ParseFromString output argument | semmle.label | ParseFromString output argument | -| protobuf.cpp:118:22:118:25 | data | semmle.label | data | -| protobuf.cpp:119:7:119:9 | msg | semmle.label | msg | -| protobuf.cpp:124:20:124:37 | call to source | semmle.label | call to source | -| protobuf.cpp:124:20:124:37 | call to source | semmle.label | call to source | -| protobuf.cpp:125:2:125:4 | ParseFromString output argument | semmle.label | ParseFromString output argument | -| protobuf.cpp:125:22:125:25 | *data | semmle.label | *data | -| protobuf.cpp:126:7:126:9 | msg | semmle.label | msg | -| protobuf.cpp:131:27:131:51 | call to source | semmle.label | call to source | -| protobuf.cpp:131:27:131:51 | call to source | semmle.label | call to source | -| protobuf.cpp:132:2:132:4 | ParsePartialFromString output argument | semmle.label | ParsePartialFromString output argument | -| protobuf.cpp:132:29:132:32 | data | semmle.label | data | -| protobuf.cpp:133:7:133:9 | msg | semmle.label | msg | -| protobuf.cpp:138:20:138:37 | call to source | semmle.label | call to source | -| protobuf.cpp:138:20:138:37 | call to source | semmle.label | call to source | -| protobuf.cpp:139:2:139:4 | ParsePartialFromString output argument | semmle.label | ParsePartialFromString output argument | -| protobuf.cpp:139:29:139:32 | *data | semmle.label | *data | -| protobuf.cpp:140:7:140:9 | msg | semmle.label | msg | -| protobuf.cpp:145:27:145:51 | call to source | semmle.label | call to source | -| protobuf.cpp:145:27:145:51 | call to source | semmle.label | call to source | -| protobuf.cpp:146:2:146:4 | MergeFromString output argument | semmle.label | MergeFromString output argument | -| protobuf.cpp:146:22:146:25 | data | semmle.label | data | -| protobuf.cpp:147:7:147:9 | msg | semmle.label | msg | -| protobuf.cpp:152:20:152:37 | call to source | semmle.label | call to source | -| protobuf.cpp:152:20:152:37 | call to source | semmle.label | call to source | -| protobuf.cpp:153:2:153:4 | MergeFromString output argument | semmle.label | MergeFromString output argument | -| protobuf.cpp:153:22:153:25 | *data | semmle.label | *data | -| protobuf.cpp:154:7:154:9 | msg | semmle.label | msg | -| protobuf.cpp:159:27:159:51 | call to source | semmle.label | call to source | -| protobuf.cpp:159:27:159:51 | call to source | semmle.label | call to source | -| protobuf.cpp:160:2:160:4 | MergePartialFromString output argument | semmle.label | MergePartialFromString output argument | -| protobuf.cpp:160:29:160:32 | data | semmle.label | data | -| protobuf.cpp:161:7:161:9 | msg | semmle.label | msg | -| protobuf.cpp:166:20:166:37 | call to source | semmle.label | call to source | -| protobuf.cpp:166:20:166:37 | call to source | semmle.label | call to source | -| protobuf.cpp:167:2:167:4 | MergePartialFromString output argument | semmle.label | MergePartialFromString output argument | -| protobuf.cpp:167:29:167:32 | *data | semmle.label | *data | -| protobuf.cpp:168:7:168:9 | msg | semmle.label | msg | -| protobuf.cpp:173:19:173:38 | call to source | semmle.label | call to source | -| protobuf.cpp:174:2:174:4 | ParseFromArray output argument | semmle.label | ParseFromArray output argument | -| protobuf.cpp:174:21:174:31 | *call to data | semmle.label | *call to data | -| protobuf.cpp:175:7:175:9 | msg | semmle.label | msg | -| protobuf.cpp:180:19:180:38 | call to source | semmle.label | call to source | -| protobuf.cpp:181:2:181:4 | ParsePartialFromArray output argument | semmle.label | ParsePartialFromArray output argument | -| protobuf.cpp:181:28:181:38 | *call to data | semmle.label | *call to data | -| protobuf.cpp:182:7:182:9 | msg | semmle.label | msg | -| protobuf.cpp:187:20:187:37 | call to source | semmle.label | call to source | -| protobuf.cpp:187:20:187:37 | call to source | semmle.label | call to source | -| protobuf.cpp:188:2:188:4 | ParseFromCord output argument | semmle.label | ParseFromCord output argument | -| protobuf.cpp:188:20:188:23 | *data | semmle.label | *data | -| protobuf.cpp:189:7:189:9 | msg | semmle.label | msg | -| protobuf.cpp:194:20:194:37 | call to source | semmle.label | call to source | -| protobuf.cpp:194:20:194:37 | call to source | semmle.label | call to source | -| protobuf.cpp:195:2:195:4 | ParsePartialFromCord output argument | semmle.label | ParsePartialFromCord output argument | -| protobuf.cpp:195:27:195:30 | *data | semmle.label | *data | -| protobuf.cpp:196:7:196:9 | msg | semmle.label | msg | -| protobuf.cpp:201:20:201:37 | call to source | semmle.label | call to source | -| protobuf.cpp:201:20:201:37 | call to source | semmle.label | call to source | -| protobuf.cpp:202:2:202:4 | MergeFromCord output argument | semmle.label | MergeFromCord output argument | -| protobuf.cpp:202:20:202:23 | *data | semmle.label | *data | -| protobuf.cpp:203:7:203:9 | msg | semmle.label | msg | -| protobuf.cpp:208:20:208:37 | call to source | semmle.label | call to source | -| protobuf.cpp:208:20:208:37 | call to source | semmle.label | call to source | -| protobuf.cpp:209:2:209:4 | MergePartialFromCord output argument | semmle.label | MergePartialFromCord output argument | -| protobuf.cpp:209:27:209:30 | *data | semmle.label | *data | -| protobuf.cpp:210:7:210:9 | msg | semmle.label | msg | -| protobuf.cpp:215:20:215:39 | call to source | semmle.label | call to source | -| protobuf.cpp:215:20:215:39 | call to source | semmle.label | call to source | -| protobuf.cpp:216:2:216:4 | ParseFromIstream output argument | semmle.label | ParseFromIstream output argument | -| protobuf.cpp:216:23:216:25 | *& ... | semmle.label | *& ... | -| protobuf.cpp:217:7:217:9 | msg | semmle.label | msg | -| protobuf.cpp:222:20:222:39 | call to source | semmle.label | call to source | -| protobuf.cpp:222:20:222:39 | call to source | semmle.label | call to source | -| protobuf.cpp:223:2:223:4 | ParsePartialFromIstream output argument | semmle.label | ParsePartialFromIstream output argument | -| protobuf.cpp:223:30:223:32 | *& ... | semmle.label | *& ... | -| protobuf.cpp:224:7:224:9 | msg | semmle.label | msg | -| protobuf.cpp:229:27:229:53 | call to source | semmle.label | call to source | -| protobuf.cpp:229:27:229:53 | call to source | semmle.label | call to source | -| protobuf.cpp:230:2:230:4 | ParseFromZeroCopyStream output argument | semmle.label | ParseFromZeroCopyStream output argument | -| protobuf.cpp:230:30:230:32 | *& ... | semmle.label | *& ... | -| protobuf.cpp:231:7:231:9 | msg | semmle.label | msg | -| protobuf.cpp:236:27:236:53 | call to source | semmle.label | call to source | -| protobuf.cpp:236:27:236:53 | call to source | semmle.label | call to source | -| protobuf.cpp:237:2:237:4 | ParsePartialFromZeroCopyStream output argument | semmle.label | ParsePartialFromZeroCopyStream output argument | -| protobuf.cpp:237:37:237:39 | *& ... | semmle.label | *& ... | -| protobuf.cpp:238:7:238:9 | msg | semmle.label | msg | -| protobuf.cpp:243:27:243:53 | call to source | semmle.label | call to source | -| protobuf.cpp:243:27:243:53 | call to source | semmle.label | call to source | -| protobuf.cpp:244:2:244:4 | ParseFromBoundedZeroCopyStream output argument | semmle.label | ParseFromBoundedZeroCopyStream output argument | -| protobuf.cpp:244:37:244:39 | *& ... | semmle.label | *& ... | -| protobuf.cpp:245:7:245:9 | msg | semmle.label | msg | -| protobuf.cpp:250:27:250:53 | call to source | semmle.label | call to source | -| protobuf.cpp:250:27:250:53 | call to source | semmle.label | call to source | -| protobuf.cpp:251:2:251:4 | ParsePartialFromBoundedZeroCopyStream output argument | semmle.label | ParsePartialFromBoundedZeroCopyStream output argument | -| protobuf.cpp:251:44:251:46 | *& ... | semmle.label | *& ... | -| protobuf.cpp:252:7:252:9 | msg | semmle.label | msg | -| protobuf.cpp:257:27:257:53 | call to source | semmle.label | call to source | -| protobuf.cpp:257:27:257:53 | call to source | semmle.label | call to source | -| protobuf.cpp:258:2:258:4 | MergeFromBoundedZeroCopyStream output argument | semmle.label | MergeFromBoundedZeroCopyStream output argument | -| protobuf.cpp:258:37:258:39 | *& ... | semmle.label | *& ... | -| protobuf.cpp:259:7:259:9 | msg | semmle.label | msg | -| protobuf.cpp:264:27:264:53 | call to source | semmle.label | call to source | -| protobuf.cpp:264:27:264:53 | call to source | semmle.label | call to source | -| protobuf.cpp:265:2:265:4 | MergePartialFromBoundedZeroCopyStream output argument | semmle.label | MergePartialFromBoundedZeroCopyStream output argument | -| protobuf.cpp:265:44:265:46 | *& ... | semmle.label | *& ... | -| protobuf.cpp:266:7:266:9 | msg | semmle.label | msg | -| protobuf.cpp:271:24:271:47 | call to source | semmle.label | call to source | -| protobuf.cpp:271:24:271:47 | call to source | semmle.label | call to source | -| protobuf.cpp:272:2:272:4 | ParseFromCodedStream output argument | semmle.label | ParseFromCodedStream output argument | -| protobuf.cpp:272:27:272:29 | *& ... | semmle.label | *& ... | -| protobuf.cpp:273:7:273:9 | msg | semmle.label | msg | -| protobuf.cpp:278:24:278:47 | call to source | semmle.label | call to source | -| protobuf.cpp:278:24:278:47 | call to source | semmle.label | call to source | -| protobuf.cpp:279:2:279:4 | ParsePartialFromCodedStream output argument | semmle.label | ParsePartialFromCodedStream output argument | -| protobuf.cpp:279:34:279:36 | *& ... | semmle.label | *& ... | -| protobuf.cpp:280:7:280:9 | msg | semmle.label | msg | -| protobuf.cpp:285:24:285:47 | call to source | semmle.label | call to source | -| protobuf.cpp:285:24:285:47 | call to source | semmle.label | call to source | -| protobuf.cpp:286:2:286:4 | MergeFromCodedStream output argument | semmle.label | MergeFromCodedStream output argument | -| protobuf.cpp:286:27:286:29 | *& ... | semmle.label | *& ... | -| protobuf.cpp:287:7:287:9 | msg | semmle.label | msg | -| protobuf.cpp:292:24:292:47 | call to source | semmle.label | call to source | -| protobuf.cpp:292:24:292:47 | call to source | semmle.label | call to source | -| protobuf.cpp:293:2:293:4 | MergePartialFromCodedStream output argument | semmle.label | MergePartialFromCodedStream output argument | -| protobuf.cpp:293:34:293:36 | *& ... | semmle.label | *& ... | -| protobuf.cpp:294:7:294:9 | msg | semmle.label | msg | -| protobuf.cpp:307:15:307:28 | call to source | semmle.label | call to source | -| protobuf.cpp:307:15:307:28 | call to source | semmle.label | call to source | -| protobuf.cpp:309:2:309:4 | *msg | semmle.label | *msg | -| protobuf.cpp:309:24:309:27 | SerializeToString output argument | semmle.label | SerializeToString output argument | -| protobuf.cpp:310:7:310:9 | out | semmle.label | out | -| protobuf.cpp:314:15:314:28 | call to source | semmle.label | call to source | -| protobuf.cpp:314:15:314:28 | call to source | semmle.label | call to source | -| protobuf.cpp:316:2:316:4 | *msg | semmle.label | *msg | -| protobuf.cpp:316:31:316:34 | SerializePartialToString output argument | semmle.label | SerializePartialToString output argument | -| protobuf.cpp:317:7:317:9 | out | semmle.label | out | -| protobuf.cpp:321:15:321:28 | call to source | semmle.label | call to source | -| protobuf.cpp:321:15:321:28 | call to source | semmle.label | call to source | -| protobuf.cpp:323:2:323:4 | *msg | semmle.label | *msg | -| protobuf.cpp:323:21:323:24 | AppendToString output argument | semmle.label | AppendToString output argument | -| protobuf.cpp:324:7:324:9 | out | semmle.label | out | -| protobuf.cpp:328:15:328:28 | call to source | semmle.label | call to source | -| protobuf.cpp:328:15:328:28 | call to source | semmle.label | call to source | -| protobuf.cpp:330:2:330:4 | *msg | semmle.label | *msg | -| protobuf.cpp:330:28:330:31 | AppendPartialToString output argument | semmle.label | AppendPartialToString output argument | -| protobuf.cpp:331:7:331:9 | out | semmle.label | out | -| protobuf.cpp:335:15:335:28 | call to source | semmle.label | call to source | -| protobuf.cpp:335:15:335:28 | call to source | semmle.label | call to source | -| protobuf.cpp:337:2:337:4 | *msg | semmle.label | *msg | -| protobuf.cpp:337:24:337:27 | SerializeToString output argument | semmle.label | SerializeToString output argument | -| protobuf.cpp:338:7:338:9 | out | semmle.label | out | -| protobuf.cpp:342:15:342:28 | call to source | semmle.label | call to source | -| protobuf.cpp:342:15:342:28 | call to source | semmle.label | call to source | -| protobuf.cpp:344:2:344:4 | *msg | semmle.label | *msg | -| protobuf.cpp:344:31:344:34 | SerializePartialToString output argument | semmle.label | SerializePartialToString output argument | -| protobuf.cpp:345:7:345:9 | out | semmle.label | out | -| protobuf.cpp:349:15:349:28 | call to source | semmle.label | call to source | -| protobuf.cpp:349:15:349:28 | call to source | semmle.label | call to source | -| protobuf.cpp:351:2:351:4 | *msg | semmle.label | *msg | -| protobuf.cpp:351:21:351:24 | AppendToString output argument | semmle.label | AppendToString output argument | -| protobuf.cpp:352:7:352:9 | out | semmle.label | out | -| protobuf.cpp:356:15:356:28 | call to source | semmle.label | call to source | -| protobuf.cpp:356:15:356:28 | call to source | semmle.label | call to source | -| protobuf.cpp:358:2:358:4 | *msg | semmle.label | *msg | -| protobuf.cpp:358:28:358:31 | AppendPartialToString output argument | semmle.label | AppendPartialToString output argument | -| protobuf.cpp:359:7:359:9 | out | semmle.label | out | -| protobuf.cpp:363:15:363:28 | call to source | semmle.label | call to source | -| protobuf.cpp:363:15:363:28 | call to source | semmle.label | call to source | -| protobuf.cpp:365:2:365:4 | *msg | semmle.label | *msg | -| protobuf.cpp:365:23:365:25 | SerializeToArray output argument | semmle.label | SerializeToArray output argument | -| protobuf.cpp:366:7:366:10 | * ... | semmle.label | * ... | -| protobuf.cpp:370:15:370:28 | call to source | semmle.label | call to source | -| protobuf.cpp:370:15:370:28 | call to source | semmle.label | call to source | -| protobuf.cpp:372:2:372:4 | *msg | semmle.label | *msg | -| protobuf.cpp:372:30:372:32 | SerializePartialToArray output argument | semmle.label | SerializePartialToArray output argument | -| protobuf.cpp:373:7:373:10 | * ... | semmle.label | * ... | -| protobuf.cpp:377:15:377:28 | call to source | semmle.label | call to source | -| protobuf.cpp:377:15:377:28 | call to source | semmle.label | call to source | -| protobuf.cpp:379:2:379:4 | *msg | semmle.label | *msg | -| protobuf.cpp:379:22:379:25 | SerializeToCord output argument | semmle.label | SerializeToCord output argument | -| protobuf.cpp:380:7:380:9 | out | semmle.label | out | -| protobuf.cpp:384:15:384:28 | call to source | semmle.label | call to source | -| protobuf.cpp:384:15:384:28 | call to source | semmle.label | call to source | -| protobuf.cpp:386:2:386:4 | *msg | semmle.label | *msg | -| protobuf.cpp:386:29:386:32 | SerializePartialToCord output argument | semmle.label | SerializePartialToCord output argument | -| protobuf.cpp:387:7:387:9 | out | semmle.label | out | -| protobuf.cpp:391:15:391:28 | call to source | semmle.label | call to source | -| protobuf.cpp:391:15:391:28 | call to source | semmle.label | call to source | -| protobuf.cpp:393:2:393:4 | *msg | semmle.label | *msg | -| protobuf.cpp:393:19:393:22 | AppendToCord output argument | semmle.label | AppendToCord output argument | -| protobuf.cpp:394:7:394:9 | out | semmle.label | out | -| protobuf.cpp:398:15:398:28 | call to source | semmle.label | call to source | -| protobuf.cpp:398:15:398:28 | call to source | semmle.label | call to source | -| protobuf.cpp:400:2:400:4 | *msg | semmle.label | *msg | -| protobuf.cpp:400:26:400:29 | AppendPartialToCord output argument | semmle.label | AppendPartialToCord output argument | -| protobuf.cpp:401:7:401:9 | out | semmle.label | out | -| protobuf.cpp:405:15:405:28 | call to source | semmle.label | call to source | -| protobuf.cpp:405:15:405:28 | call to source | semmle.label | call to source | -| protobuf.cpp:407:2:407:4 | *msg | semmle.label | *msg | -| protobuf.cpp:407:25:407:28 | SerializeToOstream output argument | semmle.label | SerializeToOstream output argument | -| protobuf.cpp:408:7:408:9 | out | semmle.label | out | -| protobuf.cpp:412:15:412:28 | call to source | semmle.label | call to source | -| protobuf.cpp:412:15:412:28 | call to source | semmle.label | call to source | -| protobuf.cpp:414:2:414:4 | *msg | semmle.label | *msg | -| protobuf.cpp:414:32:414:35 | SerializePartialToOstream output argument | semmle.label | SerializePartialToOstream output argument | -| protobuf.cpp:415:7:415:9 | out | semmle.label | out | -| protobuf.cpp:419:15:419:28 | call to source | semmle.label | call to source | -| protobuf.cpp:419:15:419:28 | call to source | semmle.label | call to source | -| protobuf.cpp:421:2:421:4 | *msg | semmle.label | *msg | -| protobuf.cpp:421:32:421:35 | SerializeToZeroCopyStream output argument | semmle.label | SerializeToZeroCopyStream output argument | -| protobuf.cpp:422:7:422:9 | out | semmle.label | out | -| protobuf.cpp:426:15:426:28 | call to source | semmle.label | call to source | -| protobuf.cpp:426:15:426:28 | call to source | semmle.label | call to source | -| protobuf.cpp:428:2:428:4 | *msg | semmle.label | *msg | -| protobuf.cpp:428:39:428:42 | SerializePartialToZeroCopyStream output argument | semmle.label | SerializePartialToZeroCopyStream output argument | -| protobuf.cpp:429:7:429:9 | out | semmle.label | out | -| protobuf.cpp:433:15:433:28 | call to source | semmle.label | call to source | -| protobuf.cpp:433:15:433:28 | call to source | semmle.label | call to source | -| protobuf.cpp:435:2:435:4 | *msg | semmle.label | *msg | -| protobuf.cpp:435:29:435:32 | SerializeToCodedStream output argument | semmle.label | SerializeToCodedStream output argument | -| protobuf.cpp:436:7:436:9 | out | semmle.label | out | -| protobuf.cpp:440:15:440:28 | call to source | semmle.label | call to source | -| protobuf.cpp:440:15:440:28 | call to source | semmle.label | call to source | -| protobuf.cpp:442:2:442:4 | *msg | semmle.label | *msg | -| protobuf.cpp:442:36:442:39 | SerializePartialToCodedStream output argument | semmle.label | SerializePartialToCodedStream output argument | -| protobuf.cpp:443:7:443:9 | out | semmle.label | out | -| protobuf.cpp:449:15:449:28 | call to source | semmle.label | call to source | -| protobuf.cpp:449:15:449:28 | call to source | semmle.label | call to source | -| protobuf.cpp:450:7:450:9 | *msg | semmle.label | *msg | -| protobuf.cpp:450:11:450:27 | call to SerializeAsString | semmle.label | call to SerializeAsString | -| protobuf.cpp:454:15:454:28 | call to source | semmle.label | call to source | -| protobuf.cpp:454:15:454:28 | call to source | semmle.label | call to source | -| protobuf.cpp:455:7:455:9 | *msg | semmle.label | *msg | -| protobuf.cpp:455:11:455:34 | call to SerializePartialAsString | semmle.label | call to SerializePartialAsString | -| protobuf.cpp:459:15:459:28 | call to source | semmle.label | call to source | -| protobuf.cpp:459:15:459:28 | call to source | semmle.label | call to source | -| protobuf.cpp:460:7:460:9 | *msg | semmle.label | *msg | -| protobuf.cpp:460:11:460:25 | call to SerializeAsCord | semmle.label | call to SerializeAsCord | -| protobuf.cpp:464:15:464:28 | call to source | semmle.label | call to source | -| protobuf.cpp:464:15:464:28 | call to source | semmle.label | call to source | -| protobuf.cpp:465:7:465:9 | *msg | semmle.label | *msg | -| protobuf.cpp:465:11:465:32 | call to SerializePartialAsCord | semmle.label | call to SerializePartialAsCord | +| bslx.cpp:162:41:162:51 | *call to data | semmle.label | *call to data | +| bslx.cpp:165:2:165:7 | *stream | semmle.label | *stream | +| bslx.cpp:165:17:165:20 | *call to getInt32 | semmle.label | *call to getInt32 | +| bslx.cpp:165:31:165:33 | getString output argument | semmle.label | getString output argument | +| bslx.cpp:166:7:166:17 | * ... | semmle.label | * ... | +| bslx.cpp:171:33:171:40 | call to source | semmle.label | call to source | +| bslx.cpp:172:2:172:7 | reset output argument | semmle.label | reset output argument | +| bslx.cpp:172:15:172:25 | *call to data | semmle.label | *call to data | +| bslx.cpp:174:2:174:7 | *stream | semmle.label | *stream | +| bslx.cpp:174:19:174:21 | getString output argument | semmle.label | getString output argument | +| bslx.cpp:175:7:175:17 | * ... | semmle.label | * ... | +| bslx.cpp:179:33:179:40 | call to source | semmle.label | call to source | +| bslx.cpp:180:20:180:45 | *call to data | semmle.label | *call to data | +| bslx.cpp:181:50:181:55 | call to GenericInStream | semmle.label | call to GenericInStream | +| bslx.cpp:181:57:181:58 | *sb | semmle.label | *sb | +| bslx.cpp:183:2:183:7 | *stream | semmle.label | *stream | +| bslx.cpp:183:19:183:21 | getString output argument | semmle.label | getString output argument | +| bslx.cpp:184:7:184:17 | * ... | semmle.label | * ... | +| bslx.cpp:197:33:197:40 | call to source | semmle.label | call to source | +| bslx.cpp:198:34:198:39 | call to ByteInStream | semmle.label | call to ByteInStream | +| bslx.cpp:198:41:198:51 | *call to data | semmle.label | *call to data | +| bslx.cpp:200:53:200:58 | *stream | semmle.label | *stream | +| bslx.cpp:200:61:200:63 | bdexStreamIn output argument | semmle.label | bdexStreamIn output argument | +| bslx.cpp:201:7:201:17 | * ... | semmle.label | * ... | +| bslx.cpp:207:33:207:40 | call to source | semmle.label | call to source | +| bslx.cpp:208:34:208:39 | call to ByteInStream | semmle.label | call to ByteInStream | +| bslx.cpp:208:41:208:51 | *call to data | semmle.label | *call to data | +| bslx.cpp:231:2:231:7 | *stream | semmle.label | *stream | +| bslx.cpp:231:18:231:21 | *call to getLength | semmle.label | *call to getLength | +| bslx.cpp:231:32:231:35 | *call to getVersion | semmle.label | *call to getVersion | +| bslx.cpp:231:43:231:46 | *call to getInt8 | semmle.label | *call to getInt8 | +| bslx.cpp:231:55:231:59 | *call to getUint8 | semmle.label | *call to getUint8 | +| bslx.cpp:231:68:231:71 | *call to getInt16 | semmle.label | *call to getInt16 | +| bslx.cpp:231:81:231:85 | *call to getUint16 | semmle.label | *call to getUint16 | +| bslx.cpp:231:94:231:97 | *call to getInt24 | semmle.label | *call to getInt24 | +| bslx.cpp:231:107:231:111 | *call to getUint24 | semmle.label | *call to getUint24 | +| bslx.cpp:231:120:231:123 | *call to getInt32 | semmle.label | *call to getInt32 | +| bslx.cpp:231:133:231:137 | *call to getUint32 | semmle.label | *call to getUint32 | +| bslx.cpp:231:146:231:150 | *call to getInt40 | semmle.label | *call to getInt40 | +| bslx.cpp:231:160:231:165 | *call to getUint40 | semmle.label | *call to getUint40 | +| bslx.cpp:231:174:231:178 | *call to getInt48 | semmle.label | *call to getInt48 | +| bslx.cpp:231:188:231:193 | *call to getUint48 | semmle.label | *call to getUint48 | +| bslx.cpp:231:202:231:206 | *call to getInt56 | semmle.label | *call to getInt56 | +| bslx.cpp:231:216:231:221 | *call to getUint56 | semmle.label | *call to getUint56 | +| bslx.cpp:231:230:231:234 | *call to getInt64 | semmle.label | *call to getInt64 | +| bslx.cpp:231:244:231:249 | *call to getUint64 | semmle.label | *call to getUint64 | +| bslx.cpp:231:260:231:263 | *call to getFloat32 | semmle.label | *call to getFloat32 | +| bslx.cpp:231:274:231:277 | *call to getFloat64 | semmle.label | *call to getFloat64 | +| bslx.cpp:231:287:231:292 | *call to getString | semmle.label | *call to getString | +| bslx.cpp:231:305:231:315 | *call to getArrayInt8 | semmle.label | *call to getArrayInt8 | +| bslx.cpp:231:329:231:340 | *call to getArrayUint8 | semmle.label | *call to getArrayUint8 | +| bslx.cpp:231:354:231:364 | *call to getArrayInt16 | semmle.label | *call to getArrayInt16 | +| bslx.cpp:231:379:231:390 | *call to getArrayUint16 | semmle.label | *call to getArrayUint16 | +| bslx.cpp:231:404:231:414 | *call to getArrayInt24 | semmle.label | *call to getArrayInt24 | +| bslx.cpp:231:429:231:440 | *call to getArrayUint24 | semmle.label | *call to getArrayUint24 | +| bslx.cpp:231:454:231:464 | *call to getArrayInt32 | semmle.label | *call to getArrayInt32 | +| bslx.cpp:231:479:231:490 | *call to getArrayUint32 | semmle.label | *call to getArrayUint32 | +| bslx.cpp:231:504:231:515 | *call to getArrayInt40 | semmle.label | *call to getArrayInt40 | +| bslx.cpp:231:530:231:542 | *call to getArrayUint40 | semmle.label | *call to getArrayUint40 | +| bslx.cpp:231:556:231:567 | *call to getArrayInt48 | semmle.label | *call to getArrayInt48 | +| bslx.cpp:231:582:231:594 | *call to getArrayUint48 | semmle.label | *call to getArrayUint48 | +| bslx.cpp:231:608:231:619 | *call to getArrayInt56 | semmle.label | *call to getArrayInt56 | +| bslx.cpp:231:634:231:646 | *call to getArrayUint56 | semmle.label | *call to getArrayUint56 | +| bslx.cpp:231:660:231:671 | *call to getArrayInt64 | semmle.label | *call to getArrayInt64 | +| bslx.cpp:231:686:231:698 | *call to getArrayUint64 | semmle.label | *call to getArrayUint64 | +| bslx.cpp:231:714:231:724 | *call to getArrayFloat32 | semmle.label | *call to getArrayFloat32 | +| bslx.cpp:231:740:231:750 | *call to getArrayFloat64 | semmle.label | *call to getArrayFloat64 | +| bslx.cpp:231:761:231:763 | getString output argument | semmle.label | getString output argument | +| bslx.cpp:232:7:232:17 | * ... | semmle.label | * ... | +| bslx.cpp:236:33:236:40 | call to source | semmle.label | call to source | +| bslx.cpp:237:20:237:45 | *call to data | semmle.label | *call to data | +| bslx.cpp:238:50:238:55 | call to GenericInStream | semmle.label | call to GenericInStream | +| bslx.cpp:238:57:238:58 | *sb | semmle.label | *sb | +| bslx.cpp:261:2:261:7 | *stream | semmle.label | *stream | +| bslx.cpp:261:18:261:21 | *call to getLength | semmle.label | *call to getLength | +| bslx.cpp:261:32:261:35 | *call to getVersion | semmle.label | *call to getVersion | +| bslx.cpp:261:43:261:46 | *call to getInt8 | semmle.label | *call to getInt8 | +| bslx.cpp:261:55:261:59 | *call to getUint8 | semmle.label | *call to getUint8 | +| bslx.cpp:261:68:261:71 | *call to getInt16 | semmle.label | *call to getInt16 | +| bslx.cpp:261:81:261:85 | *call to getUint16 | semmle.label | *call to getUint16 | +| bslx.cpp:261:94:261:97 | *call to getInt24 | semmle.label | *call to getInt24 | +| bslx.cpp:261:107:261:111 | *call to getUint24 | semmle.label | *call to getUint24 | +| bslx.cpp:261:120:261:123 | *call to getInt32 | semmle.label | *call to getInt32 | +| bslx.cpp:261:133:261:137 | *call to getUint32 | semmle.label | *call to getUint32 | +| bslx.cpp:261:146:261:150 | *call to getInt40 | semmle.label | *call to getInt40 | +| bslx.cpp:261:160:261:165 | *call to getUint40 | semmle.label | *call to getUint40 | +| bslx.cpp:261:174:261:178 | *call to getInt48 | semmle.label | *call to getInt48 | +| bslx.cpp:261:188:261:193 | *call to getUint48 | semmle.label | *call to getUint48 | +| bslx.cpp:261:202:261:206 | *call to getInt56 | semmle.label | *call to getInt56 | +| bslx.cpp:261:216:261:221 | *call to getUint56 | semmle.label | *call to getUint56 | +| bslx.cpp:261:230:261:234 | *call to getInt64 | semmle.label | *call to getInt64 | +| bslx.cpp:261:244:261:249 | *call to getUint64 | semmle.label | *call to getUint64 | +| bslx.cpp:261:260:261:263 | *call to getFloat32 | semmle.label | *call to getFloat32 | +| bslx.cpp:261:274:261:277 | *call to getFloat64 | semmle.label | *call to getFloat64 | +| bslx.cpp:261:287:261:292 | *call to getString | semmle.label | *call to getString | +| bslx.cpp:261:305:261:315 | *call to getArrayInt8 | semmle.label | *call to getArrayInt8 | +| bslx.cpp:261:329:261:340 | *call to getArrayUint8 | semmle.label | *call to getArrayUint8 | +| bslx.cpp:261:354:261:364 | *call to getArrayInt16 | semmle.label | *call to getArrayInt16 | +| bslx.cpp:261:379:261:390 | *call to getArrayUint16 | semmle.label | *call to getArrayUint16 | +| bslx.cpp:261:404:261:414 | *call to getArrayInt24 | semmle.label | *call to getArrayInt24 | +| bslx.cpp:261:429:261:440 | *call to getArrayUint24 | semmle.label | *call to getArrayUint24 | +| bslx.cpp:261:454:261:464 | *call to getArrayInt32 | semmle.label | *call to getArrayInt32 | +| bslx.cpp:261:479:261:490 | *call to getArrayUint32 | semmle.label | *call to getArrayUint32 | +| bslx.cpp:261:504:261:515 | *call to getArrayInt40 | semmle.label | *call to getArrayInt40 | +| bslx.cpp:261:530:261:542 | *call to getArrayUint40 | semmle.label | *call to getArrayUint40 | +| bslx.cpp:261:556:261:567 | *call to getArrayInt48 | semmle.label | *call to getArrayInt48 | +| bslx.cpp:261:582:261:594 | *call to getArrayUint48 | semmle.label | *call to getArrayUint48 | +| bslx.cpp:261:608:261:619 | *call to getArrayInt56 | semmle.label | *call to getArrayInt56 | +| bslx.cpp:261:634:261:646 | *call to getArrayUint56 | semmle.label | *call to getArrayUint56 | +| bslx.cpp:261:660:261:671 | *call to getArrayInt64 | semmle.label | *call to getArrayInt64 | +| bslx.cpp:261:686:261:698 | *call to getArrayUint64 | semmle.label | *call to getArrayUint64 | +| bslx.cpp:261:714:261:724 | *call to getArrayFloat32 | semmle.label | *call to getArrayFloat32 | +| bslx.cpp:261:740:261:750 | *call to getArrayFloat64 | semmle.label | *call to getArrayFloat64 | +| bslx.cpp:261:761:261:763 | getString output argument | semmle.label | getString output argument | +| bslx.cpp:262:7:262:17 | * ... | semmle.label | * ... | +| bslx.cpp:266:33:266:40 | call to source | semmle.label | call to source | +| bslx.cpp:267:34:267:39 | call to ByteInStream | semmle.label | call to ByteInStream | +| bslx.cpp:267:41:267:51 | *call to data | semmle.label | *call to data | +| bslx.cpp:269:53:269:58 | *stream | semmle.label | *stream | +| bslx.cpp:269:61:269:61 | bdexStreamIn output argument | semmle.label | bdexStreamIn output argument | +| bslx.cpp:270:7:270:7 | x | semmle.label | x | +| bslx.cpp:271:53:271:58 | *stream | semmle.label | *stream | +| bslx.cpp:271:61:271:61 | bdexStreamIn output argument | semmle.label | bdexStreamIn output argument | +| bslx.cpp:272:7:272:7 | x | semmle.label | x | +| bslx.cpp:274:52:274:66 | *call to bdexStreamIn | semmle.label | *call to bdexStreamIn | +| bslx.cpp:274:53:274:58 | *stream | semmle.label | *stream | +| bslx.cpp:274:77:274:79 | getString output argument | semmle.label | getString output argument | +| bslx.cpp:275:7:275:17 | * ... | semmle.label | * ... | +| bslx.cpp:279:33:279:40 | call to source | semmle.label | call to source | +| bslx.cpp:280:34:280:39 | call to ByteInStream | semmle.label | call to ByteInStream | +| bslx.cpp:280:41:280:51 | *call to data | semmle.label | *call to data | +| bslx.cpp:282:53:282:58 | *stream | semmle.label | *stream | +| bslx.cpp:282:61:282:63 | bdexStreamIn output argument | semmle.label | bdexStreamIn output argument | +| bslx.cpp:283:7:283:17 | * ... | semmle.label | * ... | +| bslx.cpp:293:33:293:40 | call to source | semmle.label | call to source | +| bslx.cpp:294:34:294:39 | call to ByteInStream | semmle.label | call to ByteInStream | +| bslx.cpp:294:41:294:51 | *call to data | semmle.label | *call to data | +| bslx.cpp:296:53:296:58 | *stream | semmle.label | *stream | +| bslx.cpp:296:61:296:63 | bdexStreamIn output argument | semmle.label | bdexStreamIn output argument | +| bslx.cpp:297:7:297:9 | out | semmle.label | out | +| bslx.cpp:306:40:306:60 | call to source | semmle.label | call to source | +| bslx.cpp:306:40:306:60 | call to source | semmle.label | call to source | +| bslx.cpp:307:2:307:7 | reset output argument | semmle.label | reset output argument | +| bslx.cpp:307:15:307:18 | *data | semmle.label | *data | +| bslx.cpp:309:2:309:7 | *stream | semmle.label | *stream | +| bslx.cpp:309:19:309:21 | getString output argument | semmle.label | getString output argument | +| bslx.cpp:310:7:310:17 | * ... | semmle.label | * ... | +| bslx.cpp:314:33:314:40 | call to source | semmle.label | call to source | +| bslx.cpp:315:34:315:39 | call to ByteInStream | semmle.label | call to ByteInStream | +| bslx.cpp:315:41:315:51 | *call to data | semmle.label | *call to data | +| bslx.cpp:318:2:318:7 | *stream | semmle.label | *stream | +| bslx.cpp:318:19:318:21 | getString output argument | semmle.label | getString output argument | +| bslx.cpp:319:7:319:17 | * ... | semmle.label | * ... | +| bslx.cpp:333:33:333:40 | call to source | semmle.label | call to source | +| bslx.cpp:334:34:334:39 | call to ByteInStream | semmle.label | call to ByteInStream | +| bslx.cpp:334:41:334:51 | *call to data | semmle.label | *call to data | +| bslx.cpp:338:2:338:7 | *stream | semmle.label | *stream | +| bslx.cpp:338:19:338:21 | getString output argument | semmle.label | getString output argument | +| bslx.cpp:340:7:340:17 | * ... | semmle.label | * ... | +| protobuf.cpp:105:27:105:51 | call to source | semmle.label | call to source | +| protobuf.cpp:105:27:105:51 | call to source | semmle.label | call to source | +| protobuf.cpp:106:2:106:4 | ParseFromString output argument | semmle.label | ParseFromString output argument | +| protobuf.cpp:106:22:106:25 | data | semmle.label | data | +| protobuf.cpp:107:7:107:9 | msg | semmle.label | msg | +| protobuf.cpp:112:20:112:37 | call to source | semmle.label | call to source | +| protobuf.cpp:112:20:112:37 | call to source | semmle.label | call to source | +| protobuf.cpp:113:2:113:4 | ParseFromString output argument | semmle.label | ParseFromString output argument | +| protobuf.cpp:113:22:113:25 | *data | semmle.label | *data | +| protobuf.cpp:114:7:114:9 | msg | semmle.label | msg | +| protobuf.cpp:119:27:119:51 | call to source | semmle.label | call to source | +| protobuf.cpp:119:27:119:51 | call to source | semmle.label | call to source | +| protobuf.cpp:120:2:120:4 | ParsePartialFromString output argument | semmle.label | ParsePartialFromString output argument | +| protobuf.cpp:120:29:120:32 | data | semmle.label | data | +| protobuf.cpp:121:7:121:9 | msg | semmle.label | msg | +| protobuf.cpp:126:20:126:37 | call to source | semmle.label | call to source | +| protobuf.cpp:126:20:126:37 | call to source | semmle.label | call to source | +| protobuf.cpp:127:2:127:4 | ParsePartialFromString output argument | semmle.label | ParsePartialFromString output argument | +| protobuf.cpp:127:29:127:32 | *data | semmle.label | *data | +| protobuf.cpp:128:7:128:9 | msg | semmle.label | msg | +| protobuf.cpp:133:27:133:51 | call to source | semmle.label | call to source | +| protobuf.cpp:133:27:133:51 | call to source | semmle.label | call to source | +| protobuf.cpp:134:2:134:4 | MergeFromString output argument | semmle.label | MergeFromString output argument | +| protobuf.cpp:134:22:134:25 | data | semmle.label | data | +| protobuf.cpp:135:7:135:9 | msg | semmle.label | msg | +| protobuf.cpp:140:20:140:37 | call to source | semmle.label | call to source | +| protobuf.cpp:140:20:140:37 | call to source | semmle.label | call to source | +| protobuf.cpp:141:2:141:4 | MergeFromString output argument | semmle.label | MergeFromString output argument | +| protobuf.cpp:141:22:141:25 | *data | semmle.label | *data | +| protobuf.cpp:142:7:142:9 | msg | semmle.label | msg | +| protobuf.cpp:147:27:147:51 | call to source | semmle.label | call to source | +| protobuf.cpp:147:27:147:51 | call to source | semmle.label | call to source | +| protobuf.cpp:148:2:148:4 | MergePartialFromString output argument | semmle.label | MergePartialFromString output argument | +| protobuf.cpp:148:29:148:32 | data | semmle.label | data | +| protobuf.cpp:149:7:149:9 | msg | semmle.label | msg | +| protobuf.cpp:154:20:154:37 | call to source | semmle.label | call to source | +| protobuf.cpp:154:20:154:37 | call to source | semmle.label | call to source | +| protobuf.cpp:155:2:155:4 | MergePartialFromString output argument | semmle.label | MergePartialFromString output argument | +| protobuf.cpp:155:29:155:32 | *data | semmle.label | *data | +| protobuf.cpp:156:7:156:9 | msg | semmle.label | msg | +| protobuf.cpp:161:19:161:38 | call to source | semmle.label | call to source | +| protobuf.cpp:162:2:162:4 | ParseFromArray output argument | semmle.label | ParseFromArray output argument | +| protobuf.cpp:162:21:162:31 | *call to data | semmle.label | *call to data | +| protobuf.cpp:163:7:163:9 | msg | semmle.label | msg | +| protobuf.cpp:168:19:168:38 | call to source | semmle.label | call to source | +| protobuf.cpp:169:2:169:4 | ParsePartialFromArray output argument | semmle.label | ParsePartialFromArray output argument | +| protobuf.cpp:169:28:169:38 | *call to data | semmle.label | *call to data | +| protobuf.cpp:170:7:170:9 | msg | semmle.label | msg | +| protobuf.cpp:175:20:175:37 | call to source | semmle.label | call to source | +| protobuf.cpp:175:20:175:37 | call to source | semmle.label | call to source | +| protobuf.cpp:176:2:176:4 | ParseFromCord output argument | semmle.label | ParseFromCord output argument | +| protobuf.cpp:176:20:176:23 | *data | semmle.label | *data | +| protobuf.cpp:177:7:177:9 | msg | semmle.label | msg | +| protobuf.cpp:182:20:182:37 | call to source | semmle.label | call to source | +| protobuf.cpp:182:20:182:37 | call to source | semmle.label | call to source | +| protobuf.cpp:183:2:183:4 | ParsePartialFromCord output argument | semmle.label | ParsePartialFromCord output argument | +| protobuf.cpp:183:27:183:30 | *data | semmle.label | *data | +| protobuf.cpp:184:7:184:9 | msg | semmle.label | msg | +| protobuf.cpp:189:20:189:37 | call to source | semmle.label | call to source | +| protobuf.cpp:189:20:189:37 | call to source | semmle.label | call to source | +| protobuf.cpp:190:2:190:4 | MergeFromCord output argument | semmle.label | MergeFromCord output argument | +| protobuf.cpp:190:20:190:23 | *data | semmle.label | *data | +| protobuf.cpp:191:7:191:9 | msg | semmle.label | msg | +| protobuf.cpp:196:20:196:37 | call to source | semmle.label | call to source | +| protobuf.cpp:196:20:196:37 | call to source | semmle.label | call to source | +| protobuf.cpp:197:2:197:4 | MergePartialFromCord output argument | semmle.label | MergePartialFromCord output argument | +| protobuf.cpp:197:27:197:30 | *data | semmle.label | *data | +| protobuf.cpp:198:7:198:9 | msg | semmle.label | msg | +| protobuf.cpp:203:20:203:39 | call to source | semmle.label | call to source | +| protobuf.cpp:203:20:203:39 | call to source | semmle.label | call to source | +| protobuf.cpp:204:2:204:4 | ParseFromIstream output argument | semmle.label | ParseFromIstream output argument | +| protobuf.cpp:204:23:204:25 | *& ... | semmle.label | *& ... | +| protobuf.cpp:205:7:205:9 | msg | semmle.label | msg | +| protobuf.cpp:210:20:210:39 | call to source | semmle.label | call to source | +| protobuf.cpp:210:20:210:39 | call to source | semmle.label | call to source | +| protobuf.cpp:211:2:211:4 | ParsePartialFromIstream output argument | semmle.label | ParsePartialFromIstream output argument | +| protobuf.cpp:211:30:211:32 | *& ... | semmle.label | *& ... | +| protobuf.cpp:212:7:212:9 | msg | semmle.label | msg | +| protobuf.cpp:217:27:217:53 | call to source | semmle.label | call to source | +| protobuf.cpp:217:27:217:53 | call to source | semmle.label | call to source | +| protobuf.cpp:218:2:218:4 | ParseFromZeroCopyStream output argument | semmle.label | ParseFromZeroCopyStream output argument | +| protobuf.cpp:218:30:218:32 | *& ... | semmle.label | *& ... | +| protobuf.cpp:219:7:219:9 | msg | semmle.label | msg | +| protobuf.cpp:224:27:224:53 | call to source | semmle.label | call to source | +| protobuf.cpp:224:27:224:53 | call to source | semmle.label | call to source | +| protobuf.cpp:225:2:225:4 | ParsePartialFromZeroCopyStream output argument | semmle.label | ParsePartialFromZeroCopyStream output argument | +| protobuf.cpp:225:37:225:39 | *& ... | semmle.label | *& ... | +| protobuf.cpp:226:7:226:9 | msg | semmle.label | msg | +| protobuf.cpp:231:27:231:53 | call to source | semmle.label | call to source | +| protobuf.cpp:231:27:231:53 | call to source | semmle.label | call to source | +| protobuf.cpp:232:2:232:4 | ParseFromBoundedZeroCopyStream output argument | semmle.label | ParseFromBoundedZeroCopyStream output argument | +| protobuf.cpp:232:37:232:39 | *& ... | semmle.label | *& ... | +| protobuf.cpp:233:7:233:9 | msg | semmle.label | msg | +| protobuf.cpp:238:27:238:53 | call to source | semmle.label | call to source | +| protobuf.cpp:238:27:238:53 | call to source | semmle.label | call to source | +| protobuf.cpp:239:2:239:4 | ParsePartialFromBoundedZeroCopyStream output argument | semmle.label | ParsePartialFromBoundedZeroCopyStream output argument | +| protobuf.cpp:239:44:239:46 | *& ... | semmle.label | *& ... | +| protobuf.cpp:240:7:240:9 | msg | semmle.label | msg | +| protobuf.cpp:245:27:245:53 | call to source | semmle.label | call to source | +| protobuf.cpp:245:27:245:53 | call to source | semmle.label | call to source | +| protobuf.cpp:246:2:246:4 | MergeFromBoundedZeroCopyStream output argument | semmle.label | MergeFromBoundedZeroCopyStream output argument | +| protobuf.cpp:246:37:246:39 | *& ... | semmle.label | *& ... | +| protobuf.cpp:247:7:247:9 | msg | semmle.label | msg | +| protobuf.cpp:252:27:252:53 | call to source | semmle.label | call to source | +| protobuf.cpp:252:27:252:53 | call to source | semmle.label | call to source | +| protobuf.cpp:253:2:253:4 | MergePartialFromBoundedZeroCopyStream output argument | semmle.label | MergePartialFromBoundedZeroCopyStream output argument | +| protobuf.cpp:253:44:253:46 | *& ... | semmle.label | *& ... | +| protobuf.cpp:254:7:254:9 | msg | semmle.label | msg | +| protobuf.cpp:259:24:259:47 | call to source | semmle.label | call to source | +| protobuf.cpp:259:24:259:47 | call to source | semmle.label | call to source | +| protobuf.cpp:260:2:260:4 | ParseFromCodedStream output argument | semmle.label | ParseFromCodedStream output argument | +| protobuf.cpp:260:27:260:29 | *& ... | semmle.label | *& ... | +| protobuf.cpp:261:7:261:9 | msg | semmle.label | msg | +| protobuf.cpp:266:24:266:47 | call to source | semmle.label | call to source | +| protobuf.cpp:266:24:266:47 | call to source | semmle.label | call to source | +| protobuf.cpp:267:2:267:4 | ParsePartialFromCodedStream output argument | semmle.label | ParsePartialFromCodedStream output argument | +| protobuf.cpp:267:34:267:36 | *& ... | semmle.label | *& ... | +| protobuf.cpp:268:7:268:9 | msg | semmle.label | msg | +| protobuf.cpp:273:24:273:47 | call to source | semmle.label | call to source | +| protobuf.cpp:273:24:273:47 | call to source | semmle.label | call to source | +| protobuf.cpp:274:2:274:4 | MergeFromCodedStream output argument | semmle.label | MergeFromCodedStream output argument | +| protobuf.cpp:274:27:274:29 | *& ... | semmle.label | *& ... | +| protobuf.cpp:275:7:275:9 | msg | semmle.label | msg | +| protobuf.cpp:280:24:280:47 | call to source | semmle.label | call to source | +| protobuf.cpp:280:24:280:47 | call to source | semmle.label | call to source | +| protobuf.cpp:281:2:281:4 | MergePartialFromCodedStream output argument | semmle.label | MergePartialFromCodedStream output argument | +| protobuf.cpp:281:34:281:36 | *& ... | semmle.label | *& ... | +| protobuf.cpp:282:7:282:9 | msg | semmle.label | msg | +| protobuf.cpp:295:15:295:28 | call to source | semmle.label | call to source | +| protobuf.cpp:295:15:295:28 | call to source | semmle.label | call to source | +| protobuf.cpp:297:2:297:4 | *msg | semmle.label | *msg | +| protobuf.cpp:297:24:297:27 | SerializeToString output argument | semmle.label | SerializeToString output argument | +| protobuf.cpp:298:7:298:9 | out | semmle.label | out | +| protobuf.cpp:302:15:302:28 | call to source | semmle.label | call to source | +| protobuf.cpp:302:15:302:28 | call to source | semmle.label | call to source | +| protobuf.cpp:304:2:304:4 | *msg | semmle.label | *msg | +| protobuf.cpp:304:31:304:34 | SerializePartialToString output argument | semmle.label | SerializePartialToString output argument | +| protobuf.cpp:305:7:305:9 | out | semmle.label | out | +| protobuf.cpp:309:15:309:28 | call to source | semmle.label | call to source | +| protobuf.cpp:309:15:309:28 | call to source | semmle.label | call to source | +| protobuf.cpp:311:2:311:4 | *msg | semmle.label | *msg | +| protobuf.cpp:311:21:311:24 | AppendToString output argument | semmle.label | AppendToString output argument | +| protobuf.cpp:312:7:312:9 | out | semmle.label | out | +| protobuf.cpp:316:15:316:28 | call to source | semmle.label | call to source | +| protobuf.cpp:316:15:316:28 | call to source | semmle.label | call to source | +| protobuf.cpp:318:2:318:4 | *msg | semmle.label | *msg | +| protobuf.cpp:318:28:318:31 | AppendPartialToString output argument | semmle.label | AppendPartialToString output argument | +| protobuf.cpp:319:7:319:9 | out | semmle.label | out | +| protobuf.cpp:323:15:323:28 | call to source | semmle.label | call to source | +| protobuf.cpp:323:15:323:28 | call to source | semmle.label | call to source | +| protobuf.cpp:325:2:325:4 | *msg | semmle.label | *msg | +| protobuf.cpp:325:24:325:27 | SerializeToString output argument | semmle.label | SerializeToString output argument | +| protobuf.cpp:326:7:326:9 | out | semmle.label | out | +| protobuf.cpp:330:15:330:28 | call to source | semmle.label | call to source | +| protobuf.cpp:330:15:330:28 | call to source | semmle.label | call to source | +| protobuf.cpp:332:2:332:4 | *msg | semmle.label | *msg | +| protobuf.cpp:332:31:332:34 | SerializePartialToString output argument | semmle.label | SerializePartialToString output argument | +| protobuf.cpp:333:7:333:9 | out | semmle.label | out | +| protobuf.cpp:337:15:337:28 | call to source | semmle.label | call to source | +| protobuf.cpp:337:15:337:28 | call to source | semmle.label | call to source | +| protobuf.cpp:339:2:339:4 | *msg | semmle.label | *msg | +| protobuf.cpp:339:21:339:24 | AppendToString output argument | semmle.label | AppendToString output argument | +| protobuf.cpp:340:7:340:9 | out | semmle.label | out | +| protobuf.cpp:344:15:344:28 | call to source | semmle.label | call to source | +| protobuf.cpp:344:15:344:28 | call to source | semmle.label | call to source | +| protobuf.cpp:346:2:346:4 | *msg | semmle.label | *msg | +| protobuf.cpp:346:28:346:31 | AppendPartialToString output argument | semmle.label | AppendPartialToString output argument | +| protobuf.cpp:347:7:347:9 | out | semmle.label | out | +| protobuf.cpp:351:15:351:28 | call to source | semmle.label | call to source | +| protobuf.cpp:351:15:351:28 | call to source | semmle.label | call to source | +| protobuf.cpp:353:2:353:4 | *msg | semmle.label | *msg | +| protobuf.cpp:353:23:353:25 | SerializeToArray output argument | semmle.label | SerializeToArray output argument | +| protobuf.cpp:354:7:354:10 | * ... | semmle.label | * ... | +| protobuf.cpp:358:15:358:28 | call to source | semmle.label | call to source | +| protobuf.cpp:358:15:358:28 | call to source | semmle.label | call to source | +| protobuf.cpp:360:2:360:4 | *msg | semmle.label | *msg | +| protobuf.cpp:360:30:360:32 | SerializePartialToArray output argument | semmle.label | SerializePartialToArray output argument | +| protobuf.cpp:361:7:361:10 | * ... | semmle.label | * ... | +| protobuf.cpp:365:15:365:28 | call to source | semmle.label | call to source | +| protobuf.cpp:365:15:365:28 | call to source | semmle.label | call to source | +| protobuf.cpp:367:2:367:4 | *msg | semmle.label | *msg | +| protobuf.cpp:367:22:367:25 | SerializeToCord output argument | semmle.label | SerializeToCord output argument | +| protobuf.cpp:368:7:368:9 | out | semmle.label | out | +| protobuf.cpp:372:15:372:28 | call to source | semmle.label | call to source | +| protobuf.cpp:372:15:372:28 | call to source | semmle.label | call to source | +| protobuf.cpp:374:2:374:4 | *msg | semmle.label | *msg | +| protobuf.cpp:374:29:374:32 | SerializePartialToCord output argument | semmle.label | SerializePartialToCord output argument | +| protobuf.cpp:375:7:375:9 | out | semmle.label | out | +| protobuf.cpp:379:15:379:28 | call to source | semmle.label | call to source | +| protobuf.cpp:379:15:379:28 | call to source | semmle.label | call to source | +| protobuf.cpp:381:2:381:4 | *msg | semmle.label | *msg | +| protobuf.cpp:381:19:381:22 | AppendToCord output argument | semmle.label | AppendToCord output argument | +| protobuf.cpp:382:7:382:9 | out | semmle.label | out | +| protobuf.cpp:386:15:386:28 | call to source | semmle.label | call to source | +| protobuf.cpp:386:15:386:28 | call to source | semmle.label | call to source | +| protobuf.cpp:388:2:388:4 | *msg | semmle.label | *msg | +| protobuf.cpp:388:26:388:29 | AppendPartialToCord output argument | semmle.label | AppendPartialToCord output argument | +| protobuf.cpp:389:7:389:9 | out | semmle.label | out | +| protobuf.cpp:393:15:393:28 | call to source | semmle.label | call to source | +| protobuf.cpp:393:15:393:28 | call to source | semmle.label | call to source | +| protobuf.cpp:395:2:395:4 | *msg | semmle.label | *msg | +| protobuf.cpp:395:25:395:28 | SerializeToOstream output argument | semmle.label | SerializeToOstream output argument | +| protobuf.cpp:396:7:396:9 | out | semmle.label | out | +| protobuf.cpp:400:15:400:28 | call to source | semmle.label | call to source | +| protobuf.cpp:400:15:400:28 | call to source | semmle.label | call to source | +| protobuf.cpp:402:2:402:4 | *msg | semmle.label | *msg | +| protobuf.cpp:402:32:402:35 | SerializePartialToOstream output argument | semmle.label | SerializePartialToOstream output argument | +| protobuf.cpp:403:7:403:9 | out | semmle.label | out | +| protobuf.cpp:407:15:407:28 | call to source | semmle.label | call to source | +| protobuf.cpp:407:15:407:28 | call to source | semmle.label | call to source | +| protobuf.cpp:409:2:409:4 | *msg | semmle.label | *msg | +| protobuf.cpp:409:32:409:35 | SerializeToZeroCopyStream output argument | semmle.label | SerializeToZeroCopyStream output argument | +| protobuf.cpp:410:7:410:9 | out | semmle.label | out | +| protobuf.cpp:414:15:414:28 | call to source | semmle.label | call to source | +| protobuf.cpp:414:15:414:28 | call to source | semmle.label | call to source | +| protobuf.cpp:416:2:416:4 | *msg | semmle.label | *msg | +| protobuf.cpp:416:39:416:42 | SerializePartialToZeroCopyStream output argument | semmle.label | SerializePartialToZeroCopyStream output argument | +| protobuf.cpp:417:7:417:9 | out | semmle.label | out | +| protobuf.cpp:421:15:421:28 | call to source | semmle.label | call to source | +| protobuf.cpp:421:15:421:28 | call to source | semmle.label | call to source | +| protobuf.cpp:423:2:423:4 | *msg | semmle.label | *msg | +| protobuf.cpp:423:29:423:32 | SerializeToCodedStream output argument | semmle.label | SerializeToCodedStream output argument | +| protobuf.cpp:424:7:424:9 | out | semmle.label | out | +| protobuf.cpp:428:15:428:28 | call to source | semmle.label | call to source | +| protobuf.cpp:428:15:428:28 | call to source | semmle.label | call to source | +| protobuf.cpp:430:2:430:4 | *msg | semmle.label | *msg | +| protobuf.cpp:430:36:430:39 | SerializePartialToCodedStream output argument | semmle.label | SerializePartialToCodedStream output argument | +| protobuf.cpp:431:7:431:9 | out | semmle.label | out | +| protobuf.cpp:437:15:437:28 | call to source | semmle.label | call to source | +| protobuf.cpp:437:15:437:28 | call to source | semmle.label | call to source | +| protobuf.cpp:438:7:438:9 | *msg | semmle.label | *msg | +| protobuf.cpp:438:11:438:27 | call to SerializeAsString | semmle.label | call to SerializeAsString | +| protobuf.cpp:442:15:442:28 | call to source | semmle.label | call to source | +| protobuf.cpp:442:15:442:28 | call to source | semmle.label | call to source | +| protobuf.cpp:443:7:443:9 | *msg | semmle.label | *msg | +| protobuf.cpp:443:11:443:34 | call to SerializePartialAsString | semmle.label | call to SerializePartialAsString | +| protobuf.cpp:447:15:447:28 | call to source | semmle.label | call to source | +| protobuf.cpp:447:15:447:28 | call to source | semmle.label | call to source | +| protobuf.cpp:448:7:448:9 | *msg | semmle.label | *msg | +| protobuf.cpp:448:11:448:25 | call to SerializeAsCord | semmle.label | call to SerializeAsCord | +| protobuf.cpp:452:15:452:28 | call to source | semmle.label | call to source | +| protobuf.cpp:452:15:452:28 | call to source | semmle.label | call to source | +| protobuf.cpp:453:7:453:9 | *msg | semmle.label | *msg | +| protobuf.cpp:453:11:453:32 | call to SerializePartialAsCord | semmle.label | call to SerializePartialAsCord | | test.cpp:7:5:7:30 | *ymlStepGenerated_with_body | semmle.label | *ymlStepGenerated_with_body | | test.cpp:7:47:7:52 | value2 | semmle.label | value2 | | test.cpp:7:64:7:69 | value2 | semmle.label | value2 | @@ -2925,79 +2869,92 @@ nodes | test.cpp:376:13:376:13 | *c [ul] | semmle.label | *c [ul] | | test.cpp:376:13:376:16 | ul | semmle.label | ul | | test.cpp:376:15:376:16 | ul | semmle.label | ul | -| test.cpp:397:11:397:19 | call to ymlSource | semmle.label | call to ymlSource | -| test.cpp:397:11:397:19 | call to ymlSource | semmle.label | call to ymlSource | -| test.cpp:398:15:398:36 | call to makeForwarded [x] | semmle.label | call to makeForwarded [x] | -| test.cpp:398:15:398:36 | call to makeForwarded [x] | semmle.label | call to makeForwarded [x] | -| test.cpp:398:38:398:38 | x | semmle.label | x | -| test.cpp:399:11:399:11 | *e [x] | semmle.label | *e [x] | -| test.cpp:399:13:399:13 | x | semmle.label | x | -| test.cpp:399:13:399:13 | x | semmle.label | x | -| test.cpp:404:11:404:19 | call to ymlSource | semmle.label | call to ymlSource | -| test.cpp:404:11:404:19 | call to ymlSource | semmle.label | call to ymlSource | -| test.cpp:405:3:405:3 | forwardToElement output argument [x] | semmle.label | forwardToElement output argument [x] | -| test.cpp:405:22:405:22 | x | semmle.label | x | -| test.cpp:406:15:406:15 | *f [x] | semmle.label | *f [x] | -| test.cpp:406:17:406:19 | call to get [x] | semmle.label | call to get [x] | -| test.cpp:406:17:406:19 | call to get [x] | semmle.label | call to get [x] | -| test.cpp:407:11:407:11 | *e [x] | semmle.label | *e [x] | -| test.cpp:407:13:407:13 | x | semmle.label | x | -| test.cpp:407:13:407:13 | x | semmle.label | x | -| test.cpp:412:11:412:19 | call to ymlSource | semmle.label | call to ymlSource | -| test.cpp:412:11:412:19 | call to ymlSource | semmle.label | call to ymlSource | -| test.cpp:413:3:413:3 | emplace output argument [element, x] | semmle.label | emplace output argument [element, x] | -| test.cpp:413:16:413:16 | *x | semmle.label | *x | -| test.cpp:415:15:415:15 | *c [element, x] | semmle.label | *c [element, x] | -| test.cpp:415:20:415:22 | call to get [x] | semmle.label | call to get [x] | -| test.cpp:415:20:415:22 | call to get [x] | semmle.label | call to get [x] | -| test.cpp:416:11:416:11 | *e [x] | semmle.label | *e [x] | -| test.cpp:416:13:416:13 | x | semmle.label | x | -| test.cpp:416:13:416:13 | x | semmle.label | x | -| test.cpp:426:11:426:19 | call to ymlSource | semmle.label | call to ymlSource | -| test.cpp:426:11:426:19 | call to ymlSource | semmle.label | call to ymlSource | -| test.cpp:427:3:427:3 | emplace output argument [element, x] | semmle.label | emplace output argument [element, x] | -| test.cpp:427:16:427:16 | *x | semmle.label | *x | -| test.cpp:429:34:429:34 | *c [element, x] | semmle.label | *c [element, x] | -| test.cpp:429:39:429:41 | call to get [x] | semmle.label | call to get [x] | -| test.cpp:429:39:429:41 | call to get [x] | semmle.label | call to get [x] | -| test.cpp:430:11:430:11 | *e [x] | semmle.label | *e [x] | -| test.cpp:430:13:430:13 | x | semmle.label | x | -| test.cpp:430:13:430:13 | x | semmle.label | x | -| test.cpp:435:3:435:28 | *ElementWithOverloadedArity [post update] [x] | semmle.label | *ElementWithOverloadedArity [post update] [x] | -| test.cpp:435:3:435:28 | *this [Return] [x] | semmle.label | *this [Return] [x] | -| test.cpp:435:34:435:38 | first | semmle.label | first | -| test.cpp:435:45:435:49 | first | semmle.label | first | -| test.cpp:436:3:436:28 | *ElementWithOverloadedArity [post update] [x] | semmle.label | *ElementWithOverloadedArity [post update] [x] | -| test.cpp:436:3:436:28 | *this [Return] [x] | semmle.label | *this [Return] [x] | -| test.cpp:436:39:436:44 | second | semmle.label | second | -| test.cpp:436:51:436:56 | second | semmle.label | second | -| test.cpp:440:11:440:19 | call to ymlSource | semmle.label | call to ymlSource | -| test.cpp:440:11:440:19 | call to ymlSource | semmle.label | call to ymlSource | -| test.cpp:443:5:443:5 | emplace output argument [element, x] | semmle.label | emplace output argument [element, x] | -| test.cpp:443:18:443:18 | *x | semmle.label | *x | -| test.cpp:444:13:444:13 | *c [element, x] | semmle.label | *c [element, x] | -| test.cpp:444:18:444:20 | *call to get [x] | semmle.label | *call to get [x] | -| test.cpp:444:21:444:21 | x | semmle.label | x | -| test.cpp:444:21:444:21 | x | semmle.label | x | -| test.cpp:453:5:453:5 | emplace output argument [element, x] | semmle.label | emplace output argument [element, x] | -| test.cpp:453:21:453:21 | *x | semmle.label | *x | -| test.cpp:454:13:454:13 | *c [element, x] | semmle.label | *c [element, x] | -| test.cpp:454:18:454:20 | *call to get [x] | semmle.label | *call to get [x] | -| test.cpp:454:21:454:21 | x | semmle.label | x | -| test.cpp:454:21:454:21 | x | semmle.label | x | -| test.cpp:461:5:461:5 | forward output argument | semmle.label | forward output argument | -| test.cpp:461:15:461:23 | call to ymlSource | semmle.label | call to ymlSource | -| test.cpp:461:15:461:23 | call to ymlSource | semmle.label | call to ymlSource | -| test.cpp:461:15:461:25 | call to ymlSource | semmle.label | call to ymlSource | -| test.cpp:462:13:462:13 | *f | semmle.label | *f | -| test.cpp:462:15:462:17 | call to get | semmle.label | call to get | -| test.cpp:462:15:462:17 | call to get | semmle.label | call to get | -| test.cpp:466:5:466:5 | forward output argument | semmle.label | forward output argument | -| test.cpp:466:15:466:26 | *call to ymlSourcePtr | semmle.label | *call to ymlSourcePtr | -| test.cpp:466:15:466:26 | call to ymlSourcePtr | semmle.label | call to ymlSourcePtr | -| test.cpp:466:15:466:28 | **call to ymlSourcePtr | semmle.label | **call to ymlSourcePtr | -| test.cpp:467:13:467:20 | * ... | semmle.label | * ... | -| test.cpp:467:14:467:14 | *f | semmle.label | *f | +| test.cpp:398:11:398:19 | call to ymlSource | semmle.label | call to ymlSource | +| test.cpp:398:11:398:19 | call to ymlSource | semmle.label | call to ymlSource | +| test.cpp:399:15:399:36 | call to makeForwarded [x] | semmle.label | call to makeForwarded [x] | +| test.cpp:399:15:399:36 | call to makeForwarded [x] | semmle.label | call to makeForwarded [x] | +| test.cpp:399:38:399:38 | x | semmle.label | x | +| test.cpp:400:11:400:11 | *e [x] | semmle.label | *e [x] | +| test.cpp:400:13:400:13 | x | semmle.label | x | +| test.cpp:400:13:400:13 | x | semmle.label | x | +| test.cpp:405:11:405:19 | call to ymlSource | semmle.label | call to ymlSource | +| test.cpp:405:11:405:19 | call to ymlSource | semmle.label | call to ymlSource | +| test.cpp:406:3:406:3 | forwardToElement output argument [x] | semmle.label | forwardToElement output argument [x] | +| test.cpp:406:22:406:22 | x | semmle.label | x | +| test.cpp:407:15:407:15 | *f [x] | semmle.label | *f [x] | +| test.cpp:407:17:407:19 | call to get [x] | semmle.label | call to get [x] | +| test.cpp:407:17:407:19 | call to get [x] | semmle.label | call to get [x] | +| test.cpp:408:11:408:11 | *e [x] | semmle.label | *e [x] | +| test.cpp:408:13:408:13 | x | semmle.label | x | +| test.cpp:408:13:408:13 | x | semmle.label | x | +| test.cpp:413:11:413:19 | call to ymlSource | semmle.label | call to ymlSource | +| test.cpp:413:11:413:19 | call to ymlSource | semmle.label | call to ymlSource | +| test.cpp:414:3:414:3 | emplace output argument [element, x] | semmle.label | emplace output argument [element, x] | +| test.cpp:414:16:414:16 | *x | semmle.label | *x | +| test.cpp:416:15:416:15 | *c [element, x] | semmle.label | *c [element, x] | +| test.cpp:416:20:416:22 | call to get [x] | semmle.label | call to get [x] | +| test.cpp:416:20:416:22 | call to get [x] | semmle.label | call to get [x] | +| test.cpp:417:11:417:11 | *e [x] | semmle.label | *e [x] | +| test.cpp:417:13:417:13 | x | semmle.label | x | +| test.cpp:417:13:417:13 | x | semmle.label | x | +| test.cpp:422:3:422:8 | emplace output argument [element] | semmle.label | emplace output argument [element] | +| test.cpp:422:21:422:29 | call to ymlSource | semmle.label | call to ymlSource | +| test.cpp:422:21:422:29 | call to ymlSource | semmle.label | call to ymlSource | +| test.cpp:422:21:422:31 | call to ymlSource | semmle.label | call to ymlSource | +| test.cpp:423:11:423:16 | *scalar [element] | semmle.label | *scalar [element] | +| test.cpp:423:18:423:20 | call to get | semmle.label | call to get | +| test.cpp:423:21:423:23 | call to get | semmle.label | call to get | +| test.cpp:426:3:426:9 | emplace output argument [element] | semmle.label | emplace output argument [element] | +| test.cpp:426:22:426:33 | *call to ymlSourcePtr | semmle.label | *call to ymlSourcePtr | +| test.cpp:426:22:426:33 | call to ymlSourcePtr | semmle.label | call to ymlSourcePtr | +| test.cpp:426:22:426:35 | **call to ymlSourcePtr | semmle.label | **call to ymlSourcePtr | +| test.cpp:427:11:427:24 | * ... | semmle.label | * ... | +| test.cpp:427:12:427:18 | *pointer [element] | semmle.label | *pointer [element] | +| test.cpp:437:11:437:19 | call to ymlSource | semmle.label | call to ymlSource | +| test.cpp:437:11:437:19 | call to ymlSource | semmle.label | call to ymlSource | +| test.cpp:438:3:438:3 | emplace output argument [element, x] | semmle.label | emplace output argument [element, x] | +| test.cpp:438:16:438:16 | *x | semmle.label | *x | +| test.cpp:440:34:440:34 | *c [element, x] | semmle.label | *c [element, x] | +| test.cpp:440:39:440:41 | call to get [x] | semmle.label | call to get [x] | +| test.cpp:440:39:440:41 | call to get [x] | semmle.label | call to get [x] | +| test.cpp:441:11:441:11 | *e [x] | semmle.label | *e [x] | +| test.cpp:441:13:441:13 | x | semmle.label | x | +| test.cpp:441:13:441:13 | x | semmle.label | x | +| test.cpp:446:3:446:28 | *ElementWithOverloadedArity [post update] [x] | semmle.label | *ElementWithOverloadedArity [post update] [x] | +| test.cpp:446:3:446:28 | *this [Return] [x] | semmle.label | *this [Return] [x] | +| test.cpp:446:34:446:38 | first | semmle.label | first | +| test.cpp:446:45:446:49 | first | semmle.label | first | +| test.cpp:447:3:447:28 | *ElementWithOverloadedArity [post update] [x] | semmle.label | *ElementWithOverloadedArity [post update] [x] | +| test.cpp:447:3:447:28 | *this [Return] [x] | semmle.label | *this [Return] [x] | +| test.cpp:447:39:447:44 | second | semmle.label | second | +| test.cpp:447:51:447:56 | second | semmle.label | second | +| test.cpp:451:11:451:19 | call to ymlSource | semmle.label | call to ymlSource | +| test.cpp:451:11:451:19 | call to ymlSource | semmle.label | call to ymlSource | +| test.cpp:454:5:454:5 | emplace output argument [element, x] | semmle.label | emplace output argument [element, x] | +| test.cpp:454:18:454:18 | *x | semmle.label | *x | +| test.cpp:455:13:455:13 | *c [element, x] | semmle.label | *c [element, x] | +| test.cpp:455:18:455:20 | *call to get [x] | semmle.label | *call to get [x] | +| test.cpp:455:21:455:21 | x | semmle.label | x | +| test.cpp:455:21:455:21 | x | semmle.label | x | +| test.cpp:464:5:464:5 | emplace output argument [element, x] | semmle.label | emplace output argument [element, x] | +| test.cpp:464:21:464:21 | *x | semmle.label | *x | +| test.cpp:465:13:465:13 | *c [element, x] | semmle.label | *c [element, x] | +| test.cpp:465:18:465:20 | *call to get [x] | semmle.label | *call to get [x] | +| test.cpp:465:21:465:21 | x | semmle.label | x | +| test.cpp:465:21:465:21 | x | semmle.label | x | +| test.cpp:472:5:472:5 | forward output argument | semmle.label | forward output argument | +| test.cpp:472:15:472:23 | call to ymlSource | semmle.label | call to ymlSource | +| test.cpp:472:15:472:23 | call to ymlSource | semmle.label | call to ymlSource | +| test.cpp:472:15:472:25 | call to ymlSource | semmle.label | call to ymlSource | +| test.cpp:473:13:473:13 | *f | semmle.label | *f | +| test.cpp:473:15:473:17 | call to get | semmle.label | call to get | +| test.cpp:473:15:473:17 | call to get | semmle.label | call to get | +| test.cpp:477:5:477:5 | forward output argument | semmle.label | forward output argument | +| test.cpp:477:15:477:26 | *call to ymlSourcePtr | semmle.label | *call to ymlSourcePtr | +| test.cpp:477:15:477:26 | call to ymlSourcePtr | semmle.label | call to ymlSourcePtr | +| test.cpp:477:15:477:28 | **call to ymlSourcePtr | semmle.label | **call to ymlSourcePtr | +| test.cpp:478:13:478:20 | * ... | semmle.label | * ... | +| test.cpp:478:14:478:14 | *f | semmle.label | *f | | windows.cpp:22:15:22:29 | *call to GetCommandLineA | semmle.label | *call to GetCommandLineA | | windows.cpp:22:15:22:29 | call to GetCommandLineA | semmle.label | call to GetCommandLineA | | windows.cpp:24:8:24:11 | * ... | semmle.label | * ... | @@ -3223,6 +3180,6 @@ subpaths | test.cpp:363:15:363:15 | *x | test.cpp:345:38:345:40 | arg | test.cpp:345:3:345:22 | *this [Return] [ul] | test.cpp:363:5:363:5 | forward output argument [ul] | | test.cpp:372:15:372:16 | *ul | test.cpp:341:30:341:32 | arg | test.cpp:341:3:341:22 | *this [Return] [s] | test.cpp:372:5:372:5 | forward output argument [s] | | test.cpp:372:15:372:16 | *ul | test.cpp:345:38:345:40 | arg | test.cpp:345:3:345:22 | *this [Return] [ul] | test.cpp:372:5:372:5 | forward output argument [ul] | -| test.cpp:443:18:443:18 | *x | test.cpp:435:34:435:38 | first | test.cpp:435:3:435:28 | *this [Return] [x] | test.cpp:443:5:443:5 | emplace output argument [element, x] | -| test.cpp:453:21:453:21 | *x | test.cpp:436:39:436:44 | second | test.cpp:436:3:436:28 | *this [Return] [x] | test.cpp:453:5:453:5 | emplace output argument [element, x] | +| test.cpp:454:18:454:18 | *x | test.cpp:446:34:446:38 | first | test.cpp:446:3:446:28 | *this [Return] [x] | test.cpp:454:5:454:5 | emplace output argument [element, x] | +| test.cpp:464:21:464:21 | *x | test.cpp:447:39:447:44 | second | test.cpp:447:3:447:28 | *this [Return] [x] | test.cpp:464:5:464:5 | emplace output argument [element, x] | testFailures diff --git a/cpp/ql/test/library-tests/dataflow/external-models/flow.ext.yml b/cpp/ql/test/library-tests/dataflow/external-models/flow.ext.yml index 105d0a050311..77f168112bb5 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/flow.ext.yml +++ b/cpp/ql/test/library-tests/dataflow/external-models/flow.ext.yml @@ -53,4 +53,4 @@ extensions: - ["", "Forwarder", True, "forward", "(Args &&)", "", "0", "T", "Argument[-1]", "manual"] - ["", "", False, "makeForwarded", "(int)", "", "0", "T", "ReturnValue", "manual"] - ["", "Forwarder", True, "forwardToElement", "(int)", "", "0", "Element", "Argument[-1]", "manual"] - - ["", "Container", True, "emplace", "(int,Args &&)", "", "1", "T", "Argument[-1].Element", "manual"] + - ["", "Container", True, "emplace", "(int,Args &&)", "", "1", "value_type", "Argument[-1].Element", "manual"] diff --git a/cpp/ql/test/library-tests/dataflow/external-models/protobuf.cpp b/cpp/ql/test/library-tests/dataflow/external-models/protobuf.cpp index 0ee013b4b72c..ec8043218255 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/protobuf.cpp +++ b/cpp/ql/test/library-tests/dataflow/external-models/protobuf.cpp @@ -1,19 +1,7 @@ // --- stub library headers --- -#include "std_string.h" - -namespace std { - class istream { - public: - istream(); - }; - - class ostream { - public: - ostream(); - }; -} +#include "../taint-tests/stl.h" namespace absl { class string_view { diff --git a/cpp/ql/test/library-tests/dataflow/external-models/sinks.expected b/cpp/ql/test/library-tests/dataflow/external-models/sinks.expected index 3a484db7a28c..7c498739e150 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/sinks.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/sinks.expected @@ -1,5 +1,5 @@ -| asio_streams.cpp:122:29:122:39 | recv_buffer | remote-sink | -| asio_streams.cpp:132:29:132:39 | send_buffer | remote-sink | +| asio_streams.cpp:115:29:115:39 | recv_buffer | remote-sink | +| asio_streams.cpp:125:29:125:39 | send_buffer | remote-sink | | test.cpp:12:10:12:10 | 0 | test-sink | | test.cpp:14:10:14:10 | x | test-sink | | test.cpp:18:10:18:10 | y | test-sink | @@ -47,12 +47,14 @@ | test.cpp:367:15:367:16 | ul | test-sink | | test.cpp:375:15:375:15 | s | test-sink | | test.cpp:376:15:376:16 | ul | test-sink | -| test.cpp:399:13:399:13 | x | test-sink | -| test.cpp:407:13:407:13 | x | test-sink | -| test.cpp:416:13:416:13 | x | test-sink | -| test.cpp:430:13:430:13 | x | test-sink | -| test.cpp:444:21:444:21 | x | test-sink | -| test.cpp:449:21:449:21 | x | test-sink | -| test.cpp:454:21:454:21 | x | test-sink | -| test.cpp:462:15:462:17 | call to get | test-sink | -| test.cpp:467:13:467:20 | * ... | test-sink | +| test.cpp:400:13:400:13 | x | test-sink | +| test.cpp:408:13:408:13 | x | test-sink | +| test.cpp:417:13:417:13 | x | test-sink | +| test.cpp:423:18:423:20 | call to get | test-sink | +| test.cpp:427:11:427:24 | * ... | test-sink | +| test.cpp:441:13:441:13 | x | test-sink | +| test.cpp:455:21:455:21 | x | test-sink | +| test.cpp:460:21:460:21 | x | test-sink | +| test.cpp:465:21:465:21 | x | test-sink | +| test.cpp:473:15:473:17 | call to get | test-sink | +| test.cpp:478:13:478:20 | * ... | test-sink | diff --git a/cpp/ql/test/library-tests/dataflow/external-models/sources.expected b/cpp/ql/test/library-tests/dataflow/external-models/sources.expected index 82b5c09d02f6..9589477847a9 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/sources.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/sources.expected @@ -1,10 +1,11 @@ -| asio_streams.cpp:116:34:116:44 | read_until output argument | remote | -| azure.cpp:253:48:253:60 | call to GetBodyStream | remote | -| azure.cpp:273:52:273:61 | call to GetHeaders | remote | -| azure.cpp:277:38:277:44 | call to GetBody | remote | -| azure.cpp:281:68:281:84 | call to ExtractBodyStream | remote | -| azure.cpp:289:32:289:40 | call to GetHeader | remote | -| azure.cpp:293:58:293:67 | call to GetHeaders | remote | +| asio_streams.cpp:109:34:109:44 | read_until output argument | remote | +| azure.cpp:216:48:216:60 | call to GetBodyStream | remote | +| azure.cpp:236:52:236:61 | call to GetHeaders | remote | +| azure.cpp:240:38:240:44 | call to GetBody | remote | +| azure.cpp:244:68:244:84 | call to ExtractBodyStream | remote | +| azure.cpp:255:32:255:40 | call to GetHeader | remote | +| azure.cpp:259:58:259:67 | call to GetHeaders | remote | +| azure.cpp:268:34:268:43 | call to GetHeaders | remote | | test.cpp:10:10:10:18 | call to ymlSource | local | | test.cpp:56:8:56:16 | call to ymlSource | local | | test.cpp:94:10:94:18 | call to ymlSource | local | @@ -21,12 +22,13 @@ | test.cpp:317:51:317:59 | call to ymlSource | local | | test.cpp:362:15:362:23 | call to ymlSource | local | | test.cpp:371:24:371:32 | call to ymlSource | local | -| test.cpp:397:11:397:19 | call to ymlSource | local | -| test.cpp:404:11:404:19 | call to ymlSource | local | -| test.cpp:412:11:412:19 | call to ymlSource | local | -| test.cpp:426:11:426:19 | call to ymlSource | local | -| test.cpp:440:11:440:19 | call to ymlSource | local | -| test.cpp:461:15:461:23 | call to ymlSource | local | +| test.cpp:398:11:398:19 | call to ymlSource | local | +| test.cpp:405:11:405:19 | call to ymlSource | local | +| test.cpp:413:11:413:19 | call to ymlSource | local | +| test.cpp:422:21:422:29 | call to ymlSource | local | +| test.cpp:437:11:437:19 | call to ymlSource | local | +| test.cpp:451:11:451:19 | call to ymlSource | local | +| test.cpp:472:15:472:23 | call to ymlSource | local | | windows.cpp:22:15:22:29 | call to GetCommandLineA | local | | windows.cpp:34:17:34:38 | call to GetEnvironmentStringsA | local | | windows.cpp:39:36:39:38 | GetEnvironmentVariableA output argument | local | diff --git a/cpp/ql/test/library-tests/dataflow/external-models/std_string.h b/cpp/ql/test/library-tests/dataflow/external-models/std_string.h deleted file mode 100644 index abafc37f816e..000000000000 --- a/cpp/ql/test/library-tests/dataflow/external-models/std_string.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef CODEQL_TEST_STD_STRING_H -#define CODEQL_TEST_STD_STRING_H - -namespace std { - typedef unsigned long size_t; - - template class allocator { - }; - - template struct char_traits { - }; - - template, class Allocator = allocator > - class basic_string { - public: - basic_string(); - basic_string(const charT* s, const Allocator& a = Allocator()); - const charT* data() const; - size_t size() const; - }; - - typedef basic_string string; -} - -#endif diff --git a/cpp/ql/test/library-tests/dataflow/external-models/steps.expected b/cpp/ql/test/library-tests/dataflow/external-models/steps.expected index 2f9c6d74208d..fffcf5a89fbb 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/steps.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/steps.expected @@ -1,73 +1,76 @@ -| asio_streams.cpp:129:64:129:71 | *send_str | asio_streams.cpp:129:44:129:62 | call to buffer | -| asio_streams.cpp:148:24:148:27 | *host | asio_streams.cpp:148:16:148:22 | call to resolve | -| asio_streams.cpp:148:30:148:36 | *service | asio_streams.cpp:148:16:148:22 | call to resolve | -| asio_streams.cpp:149:24:149:27 | *host | asio_streams.cpp:149:16:149:22 | call to resolve | -| asio_streams.cpp:149:30:149:36 | *service | asio_streams.cpp:149:16:149:22 | call to resolve | -| asio_streams.cpp:150:24:150:27 | *host | asio_streams.cpp:150:16:150:22 | call to resolve | -| asio_streams.cpp:150:30:150:36 | *service | asio_streams.cpp:150:16:150:22 | call to resolve | -| asio_streams.cpp:151:24:151:27 | *host | asio_streams.cpp:151:16:151:22 | call to resolve | -| asio_streams.cpp:151:30:151:36 | *service | asio_streams.cpp:151:16:151:22 | call to resolve | -| asio_streams.cpp:153:24:153:32 | host_view | asio_streams.cpp:153:16:153:22 | call to resolve | -| asio_streams.cpp:153:35:153:46 | service_view | asio_streams.cpp:153:16:153:22 | call to resolve | -| asio_streams.cpp:154:24:154:32 | host_view | asio_streams.cpp:154:16:154:22 | call to resolve | -| asio_streams.cpp:154:35:154:46 | service_view | asio_streams.cpp:154:16:154:22 | call to resolve | -| asio_streams.cpp:155:24:155:32 | host_view | asio_streams.cpp:155:16:155:22 | call to resolve | -| asio_streams.cpp:155:35:155:46 | service_view | asio_streams.cpp:155:16:155:22 | call to resolve | -| asio_streams.cpp:156:24:156:32 | host_view | asio_streams.cpp:156:16:156:22 | call to resolve | -| asio_streams.cpp:156:35:156:46 | service_view | asio_streams.cpp:156:16:156:22 | call to resolve | -| asio_streams.cpp:158:34:158:37 | *host | asio_streams.cpp:158:16:158:22 | call to resolve | -| asio_streams.cpp:158:40:158:46 | *service | asio_streams.cpp:158:16:158:22 | call to resolve | -| asio_streams.cpp:159:34:159:37 | *host | asio_streams.cpp:159:16:159:22 | call to resolve | -| asio_streams.cpp:159:40:159:46 | *service | asio_streams.cpp:159:16:159:22 | call to resolve | -| asio_streams.cpp:160:34:160:37 | *host | asio_streams.cpp:160:16:160:22 | call to resolve | -| asio_streams.cpp:160:40:160:46 | *service | asio_streams.cpp:160:16:160:22 | call to resolve | -| asio_streams.cpp:161:34:161:37 | *host | asio_streams.cpp:161:16:161:22 | call to resolve | -| asio_streams.cpp:161:40:161:46 | *service | asio_streams.cpp:161:16:161:22 | call to resolve | -| asio_streams.cpp:163:34:163:42 | host_view | asio_streams.cpp:163:16:163:22 | call to resolve | -| asio_streams.cpp:163:45:163:56 | service_view | asio_streams.cpp:163:16:163:22 | call to resolve | -| asio_streams.cpp:164:34:164:42 | host_view | asio_streams.cpp:164:16:164:22 | call to resolve | -| asio_streams.cpp:164:45:164:56 | service_view | asio_streams.cpp:164:16:164:22 | call to resolve | -| asio_streams.cpp:165:34:165:42 | host_view | asio_streams.cpp:165:16:165:22 | call to resolve | -| asio_streams.cpp:165:45:165:56 | service_view | asio_streams.cpp:165:16:165:22 | call to resolve | -| asio_streams.cpp:166:34:166:42 | host_view | asio_streams.cpp:166:16:166:22 | call to resolve | -| asio_streams.cpp:166:45:166:56 | service_view | asio_streams.cpp:166:16:166:22 | call to resolve | -| asio_streams.cpp:179:24:179:27 | *host | asio_streams.cpp:179:16:179:22 | call to resolve | -| asio_streams.cpp:179:30:179:36 | *service | asio_streams.cpp:179:16:179:22 | call to resolve | -| asio_streams.cpp:180:24:180:27 | *host | asio_streams.cpp:180:16:180:22 | call to resolve | -| asio_streams.cpp:180:30:180:36 | *service | asio_streams.cpp:180:16:180:22 | call to resolve | -| asio_streams.cpp:181:24:181:27 | *host | asio_streams.cpp:181:16:181:22 | call to resolve | -| asio_streams.cpp:181:30:181:36 | *service | asio_streams.cpp:181:16:181:22 | call to resolve | -| asio_streams.cpp:182:24:182:27 | *host | asio_streams.cpp:182:16:182:22 | call to resolve | -| asio_streams.cpp:182:30:182:36 | *service | asio_streams.cpp:182:16:182:22 | call to resolve | -| asio_streams.cpp:184:24:184:32 | host_view | asio_streams.cpp:184:16:184:22 | call to resolve | -| asio_streams.cpp:184:35:184:46 | service_view | asio_streams.cpp:184:16:184:22 | call to resolve | -| asio_streams.cpp:185:24:185:32 | host_view | asio_streams.cpp:185:16:185:22 | call to resolve | -| asio_streams.cpp:185:35:185:46 | service_view | asio_streams.cpp:185:16:185:22 | call to resolve | -| asio_streams.cpp:186:24:186:32 | host_view | asio_streams.cpp:186:16:186:22 | call to resolve | -| asio_streams.cpp:186:35:186:46 | service_view | asio_streams.cpp:186:16:186:22 | call to resolve | -| asio_streams.cpp:187:24:187:32 | host_view | asio_streams.cpp:187:16:187:22 | call to resolve | -| asio_streams.cpp:187:35:187:46 | service_view | asio_streams.cpp:187:16:187:22 | call to resolve | -| asio_streams.cpp:189:34:189:37 | *host | asio_streams.cpp:189:16:189:22 | call to resolve | -| asio_streams.cpp:189:40:189:46 | *service | asio_streams.cpp:189:16:189:22 | call to resolve | -| asio_streams.cpp:190:34:190:37 | *host | asio_streams.cpp:190:16:190:22 | call to resolve | -| asio_streams.cpp:190:40:190:46 | *service | asio_streams.cpp:190:16:190:22 | call to resolve | -| asio_streams.cpp:191:34:191:37 | *host | asio_streams.cpp:191:16:191:22 | call to resolve | -| asio_streams.cpp:191:40:191:46 | *service | asio_streams.cpp:191:16:191:22 | call to resolve | -| asio_streams.cpp:192:34:192:37 | *host | asio_streams.cpp:192:16:192:22 | call to resolve | -| asio_streams.cpp:192:40:192:46 | *service | asio_streams.cpp:192:16:192:22 | call to resolve | -| asio_streams.cpp:194:34:194:42 | host_view | asio_streams.cpp:194:16:194:22 | call to resolve | -| asio_streams.cpp:194:45:194:56 | service_view | asio_streams.cpp:194:16:194:22 | call to resolve | -| asio_streams.cpp:195:34:195:42 | host_view | asio_streams.cpp:195:16:195:22 | call to resolve | -| asio_streams.cpp:195:45:195:56 | service_view | asio_streams.cpp:195:16:195:22 | call to resolve | -| asio_streams.cpp:196:34:196:42 | host_view | asio_streams.cpp:196:16:196:22 | call to resolve | -| asio_streams.cpp:196:45:196:56 | service_view | asio_streams.cpp:196:16:196:22 | call to resolve | -| asio_streams.cpp:197:34:197:42 | host_view | asio_streams.cpp:197:16:197:22 | call to resolve | -| asio_streams.cpp:197:45:197:56 | service_view | asio_streams.cpp:197:16:197:22 | call to resolve | -| azure.cpp:252:79:252:98 | call to string | azure.cpp:252:62:252:99 | call to Url | -| azure.cpp:257:5:257:8 | *resp | azure.cpp:257:16:257:21 | Read output argument | -| azure.cpp:262:5:262:8 | *resp | azure.cpp:262:23:262:28 | ReadToCount output argument | -| azure.cpp:287:79:287:98 | call to string | azure.cpp:287:62:287:99 | call to Url | -| azure.cpp:289:24:289:56 | call to GetHeader | azure.cpp:289:63:289:65 | call to Value | +| asio_streams.cpp:122:64:122:71 | *send_str | asio_streams.cpp:122:44:122:62 | call to buffer | +| asio_streams.cpp:141:24:141:27 | *host | asio_streams.cpp:141:16:141:22 | call to resolve | +| asio_streams.cpp:141:30:141:36 | *service | asio_streams.cpp:141:16:141:22 | call to resolve | +| asio_streams.cpp:142:24:142:27 | *host | asio_streams.cpp:142:16:142:22 | call to resolve | +| asio_streams.cpp:142:30:142:36 | *service | asio_streams.cpp:142:16:142:22 | call to resolve | +| asio_streams.cpp:143:24:143:27 | *host | asio_streams.cpp:143:16:143:22 | call to resolve | +| asio_streams.cpp:143:30:143:36 | *service | asio_streams.cpp:143:16:143:22 | call to resolve | +| asio_streams.cpp:144:24:144:27 | *host | asio_streams.cpp:144:16:144:22 | call to resolve | +| asio_streams.cpp:144:30:144:36 | *service | asio_streams.cpp:144:16:144:22 | call to resolve | +| asio_streams.cpp:146:24:146:32 | call to basic_string_view | asio_streams.cpp:146:16:146:22 | call to resolve | +| asio_streams.cpp:146:35:146:46 | call to basic_string_view | asio_streams.cpp:146:16:146:22 | call to resolve | +| asio_streams.cpp:147:24:147:32 | call to basic_string_view | asio_streams.cpp:147:16:147:22 | call to resolve | +| asio_streams.cpp:147:35:147:46 | call to basic_string_view | asio_streams.cpp:147:16:147:22 | call to resolve | +| asio_streams.cpp:148:24:148:32 | call to basic_string_view | asio_streams.cpp:148:16:148:22 | call to resolve | +| asio_streams.cpp:148:35:148:46 | call to basic_string_view | asio_streams.cpp:148:16:148:22 | call to resolve | +| asio_streams.cpp:149:24:149:32 | call to basic_string_view | asio_streams.cpp:149:16:149:22 | call to resolve | +| asio_streams.cpp:149:35:149:46 | call to basic_string_view | asio_streams.cpp:149:16:149:22 | call to resolve | +| asio_streams.cpp:151:34:151:37 | *host | asio_streams.cpp:151:16:151:22 | call to resolve | +| asio_streams.cpp:151:40:151:46 | *service | asio_streams.cpp:151:16:151:22 | call to resolve | +| asio_streams.cpp:152:34:152:37 | *host | asio_streams.cpp:152:16:152:22 | call to resolve | +| asio_streams.cpp:152:40:152:46 | *service | asio_streams.cpp:152:16:152:22 | call to resolve | +| asio_streams.cpp:153:34:153:37 | *host | asio_streams.cpp:153:16:153:22 | call to resolve | +| asio_streams.cpp:153:40:153:46 | *service | asio_streams.cpp:153:16:153:22 | call to resolve | +| asio_streams.cpp:154:34:154:37 | *host | asio_streams.cpp:154:16:154:22 | call to resolve | +| asio_streams.cpp:154:40:154:46 | *service | asio_streams.cpp:154:16:154:22 | call to resolve | +| asio_streams.cpp:156:34:156:42 | call to basic_string_view | asio_streams.cpp:156:16:156:22 | call to resolve | +| asio_streams.cpp:156:45:156:56 | call to basic_string_view | asio_streams.cpp:156:16:156:22 | call to resolve | +| asio_streams.cpp:157:34:157:42 | call to basic_string_view | asio_streams.cpp:157:16:157:22 | call to resolve | +| asio_streams.cpp:157:45:157:56 | call to basic_string_view | asio_streams.cpp:157:16:157:22 | call to resolve | +| asio_streams.cpp:158:34:158:42 | call to basic_string_view | asio_streams.cpp:158:16:158:22 | call to resolve | +| asio_streams.cpp:158:45:158:56 | call to basic_string_view | asio_streams.cpp:158:16:158:22 | call to resolve | +| asio_streams.cpp:159:34:159:42 | call to basic_string_view | asio_streams.cpp:159:16:159:22 | call to resolve | +| asio_streams.cpp:159:45:159:56 | call to basic_string_view | asio_streams.cpp:159:16:159:22 | call to resolve | +| asio_streams.cpp:172:24:172:27 | *host | asio_streams.cpp:172:16:172:22 | call to resolve | +| asio_streams.cpp:172:30:172:36 | *service | asio_streams.cpp:172:16:172:22 | call to resolve | +| asio_streams.cpp:173:24:173:27 | *host | asio_streams.cpp:173:16:173:22 | call to resolve | +| asio_streams.cpp:173:30:173:36 | *service | asio_streams.cpp:173:16:173:22 | call to resolve | +| asio_streams.cpp:174:24:174:27 | *host | asio_streams.cpp:174:16:174:22 | call to resolve | +| asio_streams.cpp:174:30:174:36 | *service | asio_streams.cpp:174:16:174:22 | call to resolve | +| asio_streams.cpp:175:24:175:27 | *host | asio_streams.cpp:175:16:175:22 | call to resolve | +| asio_streams.cpp:175:30:175:36 | *service | asio_streams.cpp:175:16:175:22 | call to resolve | +| asio_streams.cpp:177:24:177:32 | call to basic_string_view | asio_streams.cpp:177:16:177:22 | call to resolve | +| asio_streams.cpp:177:35:177:46 | call to basic_string_view | asio_streams.cpp:177:16:177:22 | call to resolve | +| asio_streams.cpp:178:24:178:32 | call to basic_string_view | asio_streams.cpp:178:16:178:22 | call to resolve | +| asio_streams.cpp:178:35:178:46 | call to basic_string_view | asio_streams.cpp:178:16:178:22 | call to resolve | +| asio_streams.cpp:179:24:179:32 | call to basic_string_view | asio_streams.cpp:179:16:179:22 | call to resolve | +| asio_streams.cpp:179:35:179:46 | call to basic_string_view | asio_streams.cpp:179:16:179:22 | call to resolve | +| asio_streams.cpp:180:24:180:32 | call to basic_string_view | asio_streams.cpp:180:16:180:22 | call to resolve | +| asio_streams.cpp:180:35:180:46 | call to basic_string_view | asio_streams.cpp:180:16:180:22 | call to resolve | +| asio_streams.cpp:182:34:182:37 | *host | asio_streams.cpp:182:16:182:22 | call to resolve | +| asio_streams.cpp:182:40:182:46 | *service | asio_streams.cpp:182:16:182:22 | call to resolve | +| asio_streams.cpp:183:34:183:37 | *host | asio_streams.cpp:183:16:183:22 | call to resolve | +| asio_streams.cpp:183:40:183:46 | *service | asio_streams.cpp:183:16:183:22 | call to resolve | +| asio_streams.cpp:184:34:184:37 | *host | asio_streams.cpp:184:16:184:22 | call to resolve | +| asio_streams.cpp:184:40:184:46 | *service | asio_streams.cpp:184:16:184:22 | call to resolve | +| asio_streams.cpp:185:34:185:37 | *host | asio_streams.cpp:185:16:185:22 | call to resolve | +| asio_streams.cpp:185:40:185:46 | *service | asio_streams.cpp:185:16:185:22 | call to resolve | +| asio_streams.cpp:187:34:187:42 | call to basic_string_view | asio_streams.cpp:187:16:187:22 | call to resolve | +| asio_streams.cpp:187:45:187:56 | call to basic_string_view | asio_streams.cpp:187:16:187:22 | call to resolve | +| asio_streams.cpp:188:34:188:42 | call to basic_string_view | asio_streams.cpp:188:16:188:22 | call to resolve | +| asio_streams.cpp:188:45:188:56 | call to basic_string_view | asio_streams.cpp:188:16:188:22 | call to resolve | +| asio_streams.cpp:189:34:189:42 | call to basic_string_view | asio_streams.cpp:189:16:189:22 | call to resolve | +| asio_streams.cpp:189:45:189:56 | call to basic_string_view | asio_streams.cpp:189:16:189:22 | call to resolve | +| asio_streams.cpp:190:34:190:42 | call to basic_string_view | asio_streams.cpp:190:16:190:22 | call to resolve | +| asio_streams.cpp:190:45:190:56 | call to basic_string_view | asio_streams.cpp:190:16:190:22 | call to resolve | +| azure.cpp:215:79:215:98 | call to basic_string | azure.cpp:215:62:215:99 | call to Url | +| azure.cpp:220:5:220:8 | *resp | azure.cpp:220:16:220:21 | Read output argument | +| azure.cpp:225:5:225:8 | *resp | azure.cpp:225:23:225:28 | ReadToCount output argument | +| azure.cpp:253:79:253:98 | call to basic_string | azure.cpp:253:62:253:99 | call to Url | +| azure.cpp:255:24:255:56 | call to GetHeader | azure.cpp:255:63:255:65 | call to Value | +| azure.cpp:266:79:266:98 | call to basic_string | azure.cpp:266:62:266:99 | call to Url | +| azure.cpp:268:26:268:45 | call to GetHeaders | azure.cpp:268:3:268:5 | SetQueryParameters output argument | +| azure.cpp:269:8:269:10 | *url | azure.cpp:269:12:269:29 | call to GetQueryParameters | | bal.cpp:132:17:132:18 | *sb | bal.cpp:132:21:132:24 | decode output argument | | bal.cpp:141:17:141:19 | ** ... | bal.cpp:141:22:141:25 | decode output argument | | bal.cpp:150:20:150:21 | *sb | bal.cpp:150:24:150:27 | decodeAny output argument | @@ -229,232 +232,232 @@ | bmqa.cpp:389:50:389:55 | *& ... | bmqa.cpp:389:47:389:48 | call to MessagePropertiesIterator | | bmqa.cpp:392:8:392:11 | *copy | bmqa.cpp:392:24:392:26 | *call to getAsString | | bmqa.cpp:393:8:393:18 | *call to operator= | bmqa.cpp:393:24:393:26 | *call to name | -| bslx.cpp:138:11:138:16 | *stream | bslx.cpp:138:26:138:36 | *call to getInt32 | -| bslx.cpp:154:46:154:49 | *call to data | bslx.cpp:154:34:154:39 | call to ByteInStream | -| bslx.cpp:156:2:156:7 | *stream | bslx.cpp:156:17:156:20 | *call to getInt32 | -| bslx.cpp:162:46:162:49 | *call to data | bslx.cpp:162:34:162:39 | call to ByteInStream | -| bslx.cpp:164:2:164:7 | *stream | bslx.cpp:164:21:164:30 | *call to getArrayInt8 | -| bslx.cpp:164:2:164:7 | *stream | bslx.cpp:164:22:164:24 | getArrayInt8 output argument | -| bslx.cpp:170:46:170:49 | *call to data | bslx.cpp:170:34:170:39 | call to ByteInStream | -| bslx.cpp:172:2:172:7 | *stream | bslx.cpp:172:18:172:23 | *call to getString | -| bslx.cpp:172:2:172:7 | *stream | bslx.cpp:172:19:172:21 | getString output argument | -| bslx.cpp:178:46:178:49 | *call to data | bslx.cpp:178:34:178:39 | call to ByteInStream | -| bslx.cpp:181:2:181:7 | *stream | bslx.cpp:181:17:181:20 | *call to getInt32 | -| bslx.cpp:181:17:181:20 | *call to getInt32 | bslx.cpp:181:30:181:35 | *call to getString | -| bslx.cpp:181:17:181:20 | *call to getInt32 | bslx.cpp:181:31:181:33 | getString output argument | -| bslx.cpp:188:20:188:23 | *call to data | bslx.cpp:188:2:188:7 | reset output argument | -| bslx.cpp:190:2:190:7 | *stream | bslx.cpp:190:18:190:23 | *call to getString | -| bslx.cpp:190:2:190:7 | *stream | bslx.cpp:190:19:190:21 | getString output argument | -| bslx.cpp:197:57:197:58 | *sb | bslx.cpp:197:50:197:55 | call to GenericInStream | -| bslx.cpp:199:2:199:7 | *stream | bslx.cpp:199:18:199:23 | *call to getString | -| bslx.cpp:199:2:199:7 | *stream | bslx.cpp:199:19:199:21 | getString output argument | -| bslx.cpp:206:57:206:58 | *sb | bslx.cpp:206:50:206:55 | call to GenericInStream | -| bslx.cpp:208:2:208:7 | *stream | bslx.cpp:208:17:208:20 | *call to getInt32 | -| bslx.cpp:214:46:214:49 | *call to data | bslx.cpp:214:34:214:39 | call to ByteInStream | -| bslx.cpp:216:53:216:58 | *stream | bslx.cpp:216:52:216:65 | *call to bdexStreamIn | -| bslx.cpp:216:53:216:58 | *stream | bslx.cpp:216:61:216:63 | bdexStreamIn output argument | -| bslx.cpp:224:46:224:49 | *call to data | bslx.cpp:224:34:224:39 | call to ByteInStream | -| bslx.cpp:247:2:247:7 | *stream | bslx.cpp:247:18:247:21 | *call to getLength | -| bslx.cpp:247:18:247:21 | *call to getLength | bslx.cpp:247:32:247:35 | *call to getVersion | -| bslx.cpp:247:32:247:35 | *call to getVersion | bslx.cpp:247:43:247:46 | *call to getInt8 | -| bslx.cpp:247:43:247:46 | *call to getInt8 | bslx.cpp:247:55:247:59 | *call to getUint8 | -| bslx.cpp:247:55:247:59 | *call to getUint8 | bslx.cpp:247:68:247:71 | *call to getInt16 | -| bslx.cpp:247:68:247:71 | *call to getInt16 | bslx.cpp:247:81:247:85 | *call to getUint16 | -| bslx.cpp:247:81:247:85 | *call to getUint16 | bslx.cpp:247:94:247:97 | *call to getInt24 | -| bslx.cpp:247:94:247:97 | *call to getInt24 | bslx.cpp:247:107:247:111 | *call to getUint24 | -| bslx.cpp:247:107:247:111 | *call to getUint24 | bslx.cpp:247:120:247:123 | *call to getInt32 | -| bslx.cpp:247:120:247:123 | *call to getInt32 | bslx.cpp:247:133:247:137 | *call to getUint32 | -| bslx.cpp:247:133:247:137 | *call to getUint32 | bslx.cpp:247:146:247:150 | *call to getInt40 | -| bslx.cpp:247:146:247:150 | *call to getInt40 | bslx.cpp:247:160:247:165 | *call to getUint40 | -| bslx.cpp:247:160:247:165 | *call to getUint40 | bslx.cpp:247:174:247:178 | *call to getInt48 | -| bslx.cpp:247:174:247:178 | *call to getInt48 | bslx.cpp:247:188:247:193 | *call to getUint48 | -| bslx.cpp:247:188:247:193 | *call to getUint48 | bslx.cpp:247:202:247:206 | *call to getInt56 | -| bslx.cpp:247:202:247:206 | *call to getInt56 | bslx.cpp:247:216:247:221 | *call to getUint56 | -| bslx.cpp:247:216:247:221 | *call to getUint56 | bslx.cpp:247:230:247:234 | *call to getInt64 | -| bslx.cpp:247:230:247:234 | *call to getInt64 | bslx.cpp:247:244:247:249 | *call to getUint64 | -| bslx.cpp:247:244:247:249 | *call to getUint64 | bslx.cpp:247:260:247:263 | *call to getFloat32 | -| bslx.cpp:247:260:247:263 | *call to getFloat32 | bslx.cpp:247:274:247:277 | *call to getFloat64 | -| bslx.cpp:247:274:247:277 | *call to getFloat64 | bslx.cpp:247:287:247:292 | *call to getString | -| bslx.cpp:247:274:247:277 | *call to getFloat64 | bslx.cpp:247:288:247:290 | getString output argument | -| bslx.cpp:247:287:247:292 | *call to getString | bslx.cpp:247:305:247:315 | *call to getArrayInt8 | -| bslx.cpp:247:287:247:292 | *call to getString | bslx.cpp:247:306:247:309 | getArrayInt8 output argument | -| bslx.cpp:247:305:247:315 | *call to getArrayInt8 | bslx.cpp:247:329:247:340 | *call to getArrayUint8 | -| bslx.cpp:247:305:247:315 | *call to getArrayInt8 | bslx.cpp:247:330:247:334 | getArrayUint8 output argument | -| bslx.cpp:247:329:247:340 | *call to getArrayUint8 | bslx.cpp:247:354:247:364 | *call to getArrayInt16 | -| bslx.cpp:247:329:247:340 | *call to getArrayUint8 | bslx.cpp:247:355:247:358 | getArrayInt16 output argument | -| bslx.cpp:247:354:247:364 | *call to getArrayInt16 | bslx.cpp:247:379:247:390 | *call to getArrayUint16 | -| bslx.cpp:247:354:247:364 | *call to getArrayInt16 | bslx.cpp:247:380:247:384 | getArrayUint16 output argument | -| bslx.cpp:247:379:247:390 | *call to getArrayUint16 | bslx.cpp:247:404:247:414 | *call to getArrayInt24 | -| bslx.cpp:247:379:247:390 | *call to getArrayUint16 | bslx.cpp:247:405:247:408 | getArrayInt24 output argument | -| bslx.cpp:247:404:247:414 | *call to getArrayInt24 | bslx.cpp:247:429:247:440 | *call to getArrayUint24 | -| bslx.cpp:247:404:247:414 | *call to getArrayInt24 | bslx.cpp:247:430:247:434 | getArrayUint24 output argument | -| bslx.cpp:247:429:247:440 | *call to getArrayUint24 | bslx.cpp:247:454:247:464 | *call to getArrayInt32 | -| bslx.cpp:247:429:247:440 | *call to getArrayUint24 | bslx.cpp:247:455:247:458 | getArrayInt32 output argument | -| bslx.cpp:247:454:247:464 | *call to getArrayInt32 | bslx.cpp:247:479:247:490 | *call to getArrayUint32 | -| bslx.cpp:247:454:247:464 | *call to getArrayInt32 | bslx.cpp:247:480:247:484 | getArrayUint32 output argument | -| bslx.cpp:247:479:247:490 | *call to getArrayUint32 | bslx.cpp:247:504:247:515 | *call to getArrayInt40 | -| bslx.cpp:247:479:247:490 | *call to getArrayUint32 | bslx.cpp:247:505:247:509 | getArrayInt40 output argument | -| bslx.cpp:247:504:247:515 | *call to getArrayInt40 | bslx.cpp:247:530:247:542 | *call to getArrayUint40 | -| bslx.cpp:247:504:247:515 | *call to getArrayInt40 | bslx.cpp:247:531:247:536 | getArrayUint40 output argument | -| bslx.cpp:247:530:247:542 | *call to getArrayUint40 | bslx.cpp:247:556:247:567 | *call to getArrayInt48 | -| bslx.cpp:247:530:247:542 | *call to getArrayUint40 | bslx.cpp:247:557:247:561 | getArrayInt48 output argument | -| bslx.cpp:247:556:247:567 | *call to getArrayInt48 | bslx.cpp:247:582:247:594 | *call to getArrayUint48 | -| bslx.cpp:247:556:247:567 | *call to getArrayInt48 | bslx.cpp:247:583:247:588 | getArrayUint48 output argument | -| bslx.cpp:247:582:247:594 | *call to getArrayUint48 | bslx.cpp:247:608:247:619 | *call to getArrayInt56 | -| bslx.cpp:247:582:247:594 | *call to getArrayUint48 | bslx.cpp:247:609:247:613 | getArrayInt56 output argument | -| bslx.cpp:247:608:247:619 | *call to getArrayInt56 | bslx.cpp:247:634:247:646 | *call to getArrayUint56 | -| bslx.cpp:247:608:247:619 | *call to getArrayInt56 | bslx.cpp:247:635:247:640 | getArrayUint56 output argument | -| bslx.cpp:247:634:247:646 | *call to getArrayUint56 | bslx.cpp:247:660:247:671 | *call to getArrayInt64 | -| bslx.cpp:247:634:247:646 | *call to getArrayUint56 | bslx.cpp:247:661:247:665 | getArrayInt64 output argument | -| bslx.cpp:247:660:247:671 | *call to getArrayInt64 | bslx.cpp:247:686:247:698 | *call to getArrayUint64 | -| bslx.cpp:247:660:247:671 | *call to getArrayInt64 | bslx.cpp:247:687:247:692 | getArrayUint64 output argument | -| bslx.cpp:247:686:247:698 | *call to getArrayUint64 | bslx.cpp:247:714:247:724 | *call to getArrayFloat32 | -| bslx.cpp:247:686:247:698 | *call to getArrayUint64 | bslx.cpp:247:715:247:718 | getArrayFloat32 output argument | -| bslx.cpp:247:714:247:724 | *call to getArrayFloat32 | bslx.cpp:247:740:247:750 | *call to getArrayFloat64 | -| bslx.cpp:247:714:247:724 | *call to getArrayFloat32 | bslx.cpp:247:741:247:744 | getArrayFloat64 output argument | -| bslx.cpp:247:740:247:750 | *call to getArrayFloat64 | bslx.cpp:247:760:247:765 | *call to getString | -| bslx.cpp:247:740:247:750 | *call to getArrayFloat64 | bslx.cpp:247:761:247:763 | getString output argument | -| bslx.cpp:254:57:254:58 | *sb | bslx.cpp:254:50:254:55 | call to GenericInStream | -| bslx.cpp:277:2:277:7 | *stream | bslx.cpp:277:18:277:21 | *call to getLength | -| bslx.cpp:277:18:277:21 | *call to getLength | bslx.cpp:277:32:277:35 | *call to getVersion | -| bslx.cpp:277:32:277:35 | *call to getVersion | bslx.cpp:277:43:277:46 | *call to getInt8 | -| bslx.cpp:277:43:277:46 | *call to getInt8 | bslx.cpp:277:55:277:59 | *call to getUint8 | -| bslx.cpp:277:55:277:59 | *call to getUint8 | bslx.cpp:277:68:277:71 | *call to getInt16 | -| bslx.cpp:277:68:277:71 | *call to getInt16 | bslx.cpp:277:81:277:85 | *call to getUint16 | -| bslx.cpp:277:81:277:85 | *call to getUint16 | bslx.cpp:277:94:277:97 | *call to getInt24 | -| bslx.cpp:277:94:277:97 | *call to getInt24 | bslx.cpp:277:107:277:111 | *call to getUint24 | -| bslx.cpp:277:107:277:111 | *call to getUint24 | bslx.cpp:277:120:277:123 | *call to getInt32 | -| bslx.cpp:277:120:277:123 | *call to getInt32 | bslx.cpp:277:133:277:137 | *call to getUint32 | -| bslx.cpp:277:133:277:137 | *call to getUint32 | bslx.cpp:277:146:277:150 | *call to getInt40 | -| bslx.cpp:277:146:277:150 | *call to getInt40 | bslx.cpp:277:160:277:165 | *call to getUint40 | -| bslx.cpp:277:160:277:165 | *call to getUint40 | bslx.cpp:277:174:277:178 | *call to getInt48 | -| bslx.cpp:277:174:277:178 | *call to getInt48 | bslx.cpp:277:188:277:193 | *call to getUint48 | -| bslx.cpp:277:188:277:193 | *call to getUint48 | bslx.cpp:277:202:277:206 | *call to getInt56 | -| bslx.cpp:277:202:277:206 | *call to getInt56 | bslx.cpp:277:216:277:221 | *call to getUint56 | -| bslx.cpp:277:216:277:221 | *call to getUint56 | bslx.cpp:277:230:277:234 | *call to getInt64 | -| bslx.cpp:277:230:277:234 | *call to getInt64 | bslx.cpp:277:244:277:249 | *call to getUint64 | -| bslx.cpp:277:244:277:249 | *call to getUint64 | bslx.cpp:277:260:277:263 | *call to getFloat32 | -| bslx.cpp:277:260:277:263 | *call to getFloat32 | bslx.cpp:277:274:277:277 | *call to getFloat64 | -| bslx.cpp:277:274:277:277 | *call to getFloat64 | bslx.cpp:277:287:277:292 | *call to getString | -| bslx.cpp:277:274:277:277 | *call to getFloat64 | bslx.cpp:277:288:277:290 | getString output argument | -| bslx.cpp:277:287:277:292 | *call to getString | bslx.cpp:277:305:277:315 | *call to getArrayInt8 | -| bslx.cpp:277:287:277:292 | *call to getString | bslx.cpp:277:306:277:309 | getArrayInt8 output argument | -| bslx.cpp:277:305:277:315 | *call to getArrayInt8 | bslx.cpp:277:329:277:340 | *call to getArrayUint8 | -| bslx.cpp:277:305:277:315 | *call to getArrayInt8 | bslx.cpp:277:330:277:334 | getArrayUint8 output argument | -| bslx.cpp:277:329:277:340 | *call to getArrayUint8 | bslx.cpp:277:354:277:364 | *call to getArrayInt16 | -| bslx.cpp:277:329:277:340 | *call to getArrayUint8 | bslx.cpp:277:355:277:358 | getArrayInt16 output argument | -| bslx.cpp:277:354:277:364 | *call to getArrayInt16 | bslx.cpp:277:379:277:390 | *call to getArrayUint16 | -| bslx.cpp:277:354:277:364 | *call to getArrayInt16 | bslx.cpp:277:380:277:384 | getArrayUint16 output argument | -| bslx.cpp:277:379:277:390 | *call to getArrayUint16 | bslx.cpp:277:404:277:414 | *call to getArrayInt24 | -| bslx.cpp:277:379:277:390 | *call to getArrayUint16 | bslx.cpp:277:405:277:408 | getArrayInt24 output argument | -| bslx.cpp:277:404:277:414 | *call to getArrayInt24 | bslx.cpp:277:429:277:440 | *call to getArrayUint24 | -| bslx.cpp:277:404:277:414 | *call to getArrayInt24 | bslx.cpp:277:430:277:434 | getArrayUint24 output argument | -| bslx.cpp:277:429:277:440 | *call to getArrayUint24 | bslx.cpp:277:454:277:464 | *call to getArrayInt32 | -| bslx.cpp:277:429:277:440 | *call to getArrayUint24 | bslx.cpp:277:455:277:458 | getArrayInt32 output argument | -| bslx.cpp:277:454:277:464 | *call to getArrayInt32 | bslx.cpp:277:479:277:490 | *call to getArrayUint32 | -| bslx.cpp:277:454:277:464 | *call to getArrayInt32 | bslx.cpp:277:480:277:484 | getArrayUint32 output argument | -| bslx.cpp:277:479:277:490 | *call to getArrayUint32 | bslx.cpp:277:504:277:515 | *call to getArrayInt40 | -| bslx.cpp:277:479:277:490 | *call to getArrayUint32 | bslx.cpp:277:505:277:509 | getArrayInt40 output argument | -| bslx.cpp:277:504:277:515 | *call to getArrayInt40 | bslx.cpp:277:530:277:542 | *call to getArrayUint40 | -| bslx.cpp:277:504:277:515 | *call to getArrayInt40 | bslx.cpp:277:531:277:536 | getArrayUint40 output argument | -| bslx.cpp:277:530:277:542 | *call to getArrayUint40 | bslx.cpp:277:556:277:567 | *call to getArrayInt48 | -| bslx.cpp:277:530:277:542 | *call to getArrayUint40 | bslx.cpp:277:557:277:561 | getArrayInt48 output argument | -| bslx.cpp:277:556:277:567 | *call to getArrayInt48 | bslx.cpp:277:582:277:594 | *call to getArrayUint48 | -| bslx.cpp:277:556:277:567 | *call to getArrayInt48 | bslx.cpp:277:583:277:588 | getArrayUint48 output argument | -| bslx.cpp:277:582:277:594 | *call to getArrayUint48 | bslx.cpp:277:608:277:619 | *call to getArrayInt56 | -| bslx.cpp:277:582:277:594 | *call to getArrayUint48 | bslx.cpp:277:609:277:613 | getArrayInt56 output argument | -| bslx.cpp:277:608:277:619 | *call to getArrayInt56 | bslx.cpp:277:634:277:646 | *call to getArrayUint56 | -| bslx.cpp:277:608:277:619 | *call to getArrayInt56 | bslx.cpp:277:635:277:640 | getArrayUint56 output argument | -| bslx.cpp:277:634:277:646 | *call to getArrayUint56 | bslx.cpp:277:660:277:671 | *call to getArrayInt64 | -| bslx.cpp:277:634:277:646 | *call to getArrayUint56 | bslx.cpp:277:661:277:665 | getArrayInt64 output argument | -| bslx.cpp:277:660:277:671 | *call to getArrayInt64 | bslx.cpp:277:686:277:698 | *call to getArrayUint64 | -| bslx.cpp:277:660:277:671 | *call to getArrayInt64 | bslx.cpp:277:687:277:692 | getArrayUint64 output argument | -| bslx.cpp:277:686:277:698 | *call to getArrayUint64 | bslx.cpp:277:714:277:724 | *call to getArrayFloat32 | -| bslx.cpp:277:686:277:698 | *call to getArrayUint64 | bslx.cpp:277:715:277:718 | getArrayFloat32 output argument | -| bslx.cpp:277:714:277:724 | *call to getArrayFloat32 | bslx.cpp:277:740:277:750 | *call to getArrayFloat64 | -| bslx.cpp:277:714:277:724 | *call to getArrayFloat32 | bslx.cpp:277:741:277:744 | getArrayFloat64 output argument | -| bslx.cpp:277:740:277:750 | *call to getArrayFloat64 | bslx.cpp:277:760:277:765 | *call to getString | -| bslx.cpp:277:740:277:750 | *call to getArrayFloat64 | bslx.cpp:277:761:277:763 | getString output argument | -| bslx.cpp:283:46:283:49 | *call to data | bslx.cpp:283:34:283:39 | call to ByteInStream | -| bslx.cpp:285:53:285:58 | *stream | bslx.cpp:285:52:285:63 | *call to bdexStreamIn | -| bslx.cpp:285:53:285:58 | *stream | bslx.cpp:285:61:285:61 | bdexStreamIn output argument | -| bslx.cpp:287:53:287:58 | *stream | bslx.cpp:287:52:287:66 | *call to bdexStreamIn | -| bslx.cpp:287:53:287:58 | *stream | bslx.cpp:287:61:287:61 | bdexStreamIn output argument | -| bslx.cpp:290:52:290:66 | *call to bdexStreamIn | bslx.cpp:290:76:290:81 | *call to getString | -| bslx.cpp:290:52:290:66 | *call to bdexStreamIn | bslx.cpp:290:77:290:79 | getString output argument | -| bslx.cpp:290:53:290:58 | *stream | bslx.cpp:290:52:290:66 | *call to bdexStreamIn | -| bslx.cpp:290:53:290:58 | *stream | bslx.cpp:290:61:290:61 | bdexStreamIn output argument | -| bslx.cpp:296:46:296:49 | *call to data | bslx.cpp:296:34:296:39 | call to ByteInStream | -| bslx.cpp:298:53:298:58 | *stream | bslx.cpp:298:52:298:68 | *call to bdexStreamIn | -| bslx.cpp:298:53:298:58 | *stream | bslx.cpp:298:61:298:63 | bdexStreamIn output argument | -| bslx.cpp:310:46:310:49 | *call to data | bslx.cpp:310:34:310:39 | call to ByteInStream | -| bslx.cpp:312:53:312:58 | *stream | bslx.cpp:312:52:312:68 | *call to bdexStreamIn | -| bslx.cpp:312:53:312:58 | *stream | bslx.cpp:312:61:312:63 | bdexStreamIn output argument | -| bslx.cpp:323:15:323:18 | *data | bslx.cpp:323:2:323:7 | reset output argument | -| bslx.cpp:325:2:325:7 | *stream | bslx.cpp:325:18:325:23 | *call to getString | -| bslx.cpp:325:2:325:7 | *stream | bslx.cpp:325:19:325:21 | getString output argument | -| bslx.cpp:331:46:331:49 | *call to data | bslx.cpp:331:34:331:39 | call to ByteInStream | -| bslx.cpp:334:2:334:7 | *stream | bslx.cpp:334:18:334:23 | *call to getString | -| bslx.cpp:334:2:334:7 | *stream | bslx.cpp:334:19:334:21 | getString output argument | -| bslx.cpp:341:15:341:18 | *data | bslx.cpp:341:2:341:7 | reset output argument | -| bslx.cpp:344:2:344:7 | *stream | bslx.cpp:344:18:344:23 | *call to getString | -| bslx.cpp:344:2:344:7 | *stream | bslx.cpp:344:19:344:21 | getString output argument | -| bslx.cpp:350:46:350:49 | *call to data | bslx.cpp:350:34:350:39 | call to ByteInStream | -| bslx.cpp:352:15:352:19 | *clean | bslx.cpp:352:2:352:7 | reset output argument | -| bslx.cpp:354:2:354:7 | *stream | bslx.cpp:354:18:354:23 | *call to getString | -| bslx.cpp:354:2:354:7 | *stream | bslx.cpp:354:19:354:21 | getString output argument | -| protobuf.cpp:118:22:118:25 | data | protobuf.cpp:118:2:118:4 | ParseFromString output argument | -| protobuf.cpp:125:22:125:25 | *data | protobuf.cpp:125:2:125:4 | ParseFromString output argument | -| protobuf.cpp:132:29:132:32 | data | protobuf.cpp:132:2:132:4 | ParsePartialFromString output argument | -| protobuf.cpp:139:29:139:32 | *data | protobuf.cpp:139:2:139:4 | ParsePartialFromString output argument | -| protobuf.cpp:146:22:146:25 | data | protobuf.cpp:146:2:146:4 | MergeFromString output argument | -| protobuf.cpp:153:22:153:25 | *data | protobuf.cpp:153:2:153:4 | MergeFromString output argument | -| protobuf.cpp:160:29:160:32 | data | protobuf.cpp:160:2:160:4 | MergePartialFromString output argument | -| protobuf.cpp:167:29:167:32 | *data | protobuf.cpp:167:2:167:4 | MergePartialFromString output argument | -| protobuf.cpp:174:21:174:31 | *call to data | protobuf.cpp:174:2:174:4 | ParseFromArray output argument | -| protobuf.cpp:181:28:181:38 | *call to data | protobuf.cpp:181:2:181:4 | ParsePartialFromArray output argument | -| protobuf.cpp:188:20:188:23 | *data | protobuf.cpp:188:2:188:4 | ParseFromCord output argument | -| protobuf.cpp:195:27:195:30 | *data | protobuf.cpp:195:2:195:4 | ParsePartialFromCord output argument | -| protobuf.cpp:202:20:202:23 | *data | protobuf.cpp:202:2:202:4 | MergeFromCord output argument | -| protobuf.cpp:209:27:209:30 | *data | protobuf.cpp:209:2:209:4 | MergePartialFromCord output argument | -| protobuf.cpp:216:23:216:25 | *& ... | protobuf.cpp:216:2:216:4 | ParseFromIstream output argument | -| protobuf.cpp:223:30:223:32 | *& ... | protobuf.cpp:223:2:223:4 | ParsePartialFromIstream output argument | -| protobuf.cpp:230:30:230:32 | *& ... | protobuf.cpp:230:2:230:4 | ParseFromZeroCopyStream output argument | -| protobuf.cpp:237:37:237:39 | *& ... | protobuf.cpp:237:2:237:4 | ParsePartialFromZeroCopyStream output argument | -| protobuf.cpp:244:37:244:39 | *& ... | protobuf.cpp:244:2:244:4 | ParseFromBoundedZeroCopyStream output argument | -| protobuf.cpp:251:44:251:46 | *& ... | protobuf.cpp:251:2:251:4 | ParsePartialFromBoundedZeroCopyStream output argument | -| protobuf.cpp:258:37:258:39 | *& ... | protobuf.cpp:258:2:258:4 | MergeFromBoundedZeroCopyStream output argument | -| protobuf.cpp:265:44:265:46 | *& ... | protobuf.cpp:265:2:265:4 | MergePartialFromBoundedZeroCopyStream output argument | -| protobuf.cpp:272:27:272:29 | *& ... | protobuf.cpp:272:2:272:4 | ParseFromCodedStream output argument | -| protobuf.cpp:279:34:279:36 | *& ... | protobuf.cpp:279:2:279:4 | ParsePartialFromCodedStream output argument | -| protobuf.cpp:286:27:286:29 | *& ... | protobuf.cpp:286:2:286:4 | MergeFromCodedStream output argument | -| protobuf.cpp:293:34:293:36 | *& ... | protobuf.cpp:293:2:293:4 | MergePartialFromCodedStream output argument | -| protobuf.cpp:300:22:300:25 | *data | protobuf.cpp:300:2:300:4 | ParseFromString output argument | -| protobuf.cpp:309:2:309:4 | *msg | protobuf.cpp:309:24:309:27 | SerializeToString output argument | -| protobuf.cpp:316:2:316:4 | *msg | protobuf.cpp:316:31:316:34 | SerializePartialToString output argument | -| protobuf.cpp:323:2:323:4 | *msg | protobuf.cpp:323:21:323:24 | AppendToString output argument | -| protobuf.cpp:330:2:330:4 | *msg | protobuf.cpp:330:28:330:31 | AppendPartialToString output argument | -| protobuf.cpp:337:2:337:4 | *msg | protobuf.cpp:337:24:337:27 | SerializeToString output argument | -| protobuf.cpp:344:2:344:4 | *msg | protobuf.cpp:344:31:344:34 | SerializePartialToString output argument | -| protobuf.cpp:351:2:351:4 | *msg | protobuf.cpp:351:21:351:24 | AppendToString output argument | -| protobuf.cpp:358:2:358:4 | *msg | protobuf.cpp:358:28:358:31 | AppendPartialToString output argument | -| protobuf.cpp:365:2:365:4 | *msg | protobuf.cpp:365:23:365:25 | SerializeToArray output argument | -| protobuf.cpp:372:2:372:4 | *msg | protobuf.cpp:372:30:372:32 | SerializePartialToArray output argument | -| protobuf.cpp:379:2:379:4 | *msg | protobuf.cpp:379:22:379:25 | SerializeToCord output argument | -| protobuf.cpp:386:2:386:4 | *msg | protobuf.cpp:386:29:386:32 | SerializePartialToCord output argument | -| protobuf.cpp:393:2:393:4 | *msg | protobuf.cpp:393:19:393:22 | AppendToCord output argument | -| protobuf.cpp:400:2:400:4 | *msg | protobuf.cpp:400:26:400:29 | AppendPartialToCord output argument | -| protobuf.cpp:407:2:407:4 | *msg | protobuf.cpp:407:25:407:28 | SerializeToOstream output argument | -| protobuf.cpp:414:2:414:4 | *msg | protobuf.cpp:414:32:414:35 | SerializePartialToOstream output argument | -| protobuf.cpp:421:2:421:4 | *msg | protobuf.cpp:421:32:421:35 | SerializeToZeroCopyStream output argument | -| protobuf.cpp:428:2:428:4 | *msg | protobuf.cpp:428:39:428:42 | SerializePartialToZeroCopyStream output argument | -| protobuf.cpp:435:2:435:4 | *msg | protobuf.cpp:435:29:435:32 | SerializeToCodedStream output argument | -| protobuf.cpp:442:2:442:4 | *msg | protobuf.cpp:442:36:442:39 | SerializePartialToCodedStream output argument | -| protobuf.cpp:450:7:450:9 | *msg | protobuf.cpp:450:11:450:27 | call to SerializeAsString | -| protobuf.cpp:455:7:455:9 | *msg | protobuf.cpp:455:11:455:34 | call to SerializePartialAsString | -| protobuf.cpp:460:7:460:9 | *msg | protobuf.cpp:460:11:460:25 | call to SerializeAsCord | -| protobuf.cpp:465:7:465:9 | *msg | protobuf.cpp:465:11:465:32 | call to SerializePartialAsCord | -| protobuf.cpp:470:7:470:9 | *msg | protobuf.cpp:470:11:470:27 | call to SerializeAsString | +| bslx.cpp:122:11:122:16 | *stream | bslx.cpp:122:26:122:36 | *call to getInt32 | +| bslx.cpp:138:41:138:51 | *call to data | bslx.cpp:138:34:138:39 | call to ByteInStream | +| bslx.cpp:140:2:140:7 | *stream | bslx.cpp:140:17:140:20 | *call to getInt32 | +| bslx.cpp:146:41:146:51 | *call to data | bslx.cpp:146:34:146:39 | call to ByteInStream | +| bslx.cpp:148:2:148:7 | *stream | bslx.cpp:148:21:148:30 | *call to getArrayInt8 | +| bslx.cpp:148:2:148:7 | *stream | bslx.cpp:148:22:148:24 | getArrayInt8 output argument | +| bslx.cpp:154:41:154:51 | *call to data | bslx.cpp:154:34:154:39 | call to ByteInStream | +| bslx.cpp:156:2:156:7 | *stream | bslx.cpp:156:18:156:23 | *call to getString | +| bslx.cpp:156:2:156:7 | *stream | bslx.cpp:156:19:156:21 | getString output argument | +| bslx.cpp:162:41:162:51 | *call to data | bslx.cpp:162:34:162:39 | call to ByteInStream | +| bslx.cpp:165:2:165:7 | *stream | bslx.cpp:165:17:165:20 | *call to getInt32 | +| bslx.cpp:165:17:165:20 | *call to getInt32 | bslx.cpp:165:30:165:35 | *call to getString | +| bslx.cpp:165:17:165:20 | *call to getInt32 | bslx.cpp:165:31:165:33 | getString output argument | +| bslx.cpp:172:15:172:25 | *call to data | bslx.cpp:172:2:172:7 | reset output argument | +| bslx.cpp:174:2:174:7 | *stream | bslx.cpp:174:18:174:23 | *call to getString | +| bslx.cpp:174:2:174:7 | *stream | bslx.cpp:174:19:174:21 | getString output argument | +| bslx.cpp:181:57:181:58 | *sb | bslx.cpp:181:50:181:55 | call to GenericInStream | +| bslx.cpp:183:2:183:7 | *stream | bslx.cpp:183:18:183:23 | *call to getString | +| bslx.cpp:183:2:183:7 | *stream | bslx.cpp:183:19:183:21 | getString output argument | +| bslx.cpp:190:57:190:58 | *sb | bslx.cpp:190:50:190:55 | call to GenericInStream | +| bslx.cpp:192:2:192:7 | *stream | bslx.cpp:192:17:192:20 | *call to getInt32 | +| bslx.cpp:198:41:198:51 | *call to data | bslx.cpp:198:34:198:39 | call to ByteInStream | +| bslx.cpp:200:53:200:58 | *stream | bslx.cpp:200:52:200:65 | *call to bdexStreamIn | +| bslx.cpp:200:53:200:58 | *stream | bslx.cpp:200:61:200:63 | bdexStreamIn output argument | +| bslx.cpp:208:41:208:51 | *call to data | bslx.cpp:208:34:208:39 | call to ByteInStream | +| bslx.cpp:231:2:231:7 | *stream | bslx.cpp:231:18:231:21 | *call to getLength | +| bslx.cpp:231:18:231:21 | *call to getLength | bslx.cpp:231:32:231:35 | *call to getVersion | +| bslx.cpp:231:32:231:35 | *call to getVersion | bslx.cpp:231:43:231:46 | *call to getInt8 | +| bslx.cpp:231:43:231:46 | *call to getInt8 | bslx.cpp:231:55:231:59 | *call to getUint8 | +| bslx.cpp:231:55:231:59 | *call to getUint8 | bslx.cpp:231:68:231:71 | *call to getInt16 | +| bslx.cpp:231:68:231:71 | *call to getInt16 | bslx.cpp:231:81:231:85 | *call to getUint16 | +| bslx.cpp:231:81:231:85 | *call to getUint16 | bslx.cpp:231:94:231:97 | *call to getInt24 | +| bslx.cpp:231:94:231:97 | *call to getInt24 | bslx.cpp:231:107:231:111 | *call to getUint24 | +| bslx.cpp:231:107:231:111 | *call to getUint24 | bslx.cpp:231:120:231:123 | *call to getInt32 | +| bslx.cpp:231:120:231:123 | *call to getInt32 | bslx.cpp:231:133:231:137 | *call to getUint32 | +| bslx.cpp:231:133:231:137 | *call to getUint32 | bslx.cpp:231:146:231:150 | *call to getInt40 | +| bslx.cpp:231:146:231:150 | *call to getInt40 | bslx.cpp:231:160:231:165 | *call to getUint40 | +| bslx.cpp:231:160:231:165 | *call to getUint40 | bslx.cpp:231:174:231:178 | *call to getInt48 | +| bslx.cpp:231:174:231:178 | *call to getInt48 | bslx.cpp:231:188:231:193 | *call to getUint48 | +| bslx.cpp:231:188:231:193 | *call to getUint48 | bslx.cpp:231:202:231:206 | *call to getInt56 | +| bslx.cpp:231:202:231:206 | *call to getInt56 | bslx.cpp:231:216:231:221 | *call to getUint56 | +| bslx.cpp:231:216:231:221 | *call to getUint56 | bslx.cpp:231:230:231:234 | *call to getInt64 | +| bslx.cpp:231:230:231:234 | *call to getInt64 | bslx.cpp:231:244:231:249 | *call to getUint64 | +| bslx.cpp:231:244:231:249 | *call to getUint64 | bslx.cpp:231:260:231:263 | *call to getFloat32 | +| bslx.cpp:231:260:231:263 | *call to getFloat32 | bslx.cpp:231:274:231:277 | *call to getFloat64 | +| bslx.cpp:231:274:231:277 | *call to getFloat64 | bslx.cpp:231:287:231:292 | *call to getString | +| bslx.cpp:231:274:231:277 | *call to getFloat64 | bslx.cpp:231:288:231:290 | getString output argument | +| bslx.cpp:231:287:231:292 | *call to getString | bslx.cpp:231:305:231:315 | *call to getArrayInt8 | +| bslx.cpp:231:287:231:292 | *call to getString | bslx.cpp:231:306:231:309 | getArrayInt8 output argument | +| bslx.cpp:231:305:231:315 | *call to getArrayInt8 | bslx.cpp:231:329:231:340 | *call to getArrayUint8 | +| bslx.cpp:231:305:231:315 | *call to getArrayInt8 | bslx.cpp:231:330:231:334 | getArrayUint8 output argument | +| bslx.cpp:231:329:231:340 | *call to getArrayUint8 | bslx.cpp:231:354:231:364 | *call to getArrayInt16 | +| bslx.cpp:231:329:231:340 | *call to getArrayUint8 | bslx.cpp:231:355:231:358 | getArrayInt16 output argument | +| bslx.cpp:231:354:231:364 | *call to getArrayInt16 | bslx.cpp:231:379:231:390 | *call to getArrayUint16 | +| bslx.cpp:231:354:231:364 | *call to getArrayInt16 | bslx.cpp:231:380:231:384 | getArrayUint16 output argument | +| bslx.cpp:231:379:231:390 | *call to getArrayUint16 | bslx.cpp:231:404:231:414 | *call to getArrayInt24 | +| bslx.cpp:231:379:231:390 | *call to getArrayUint16 | bslx.cpp:231:405:231:408 | getArrayInt24 output argument | +| bslx.cpp:231:404:231:414 | *call to getArrayInt24 | bslx.cpp:231:429:231:440 | *call to getArrayUint24 | +| bslx.cpp:231:404:231:414 | *call to getArrayInt24 | bslx.cpp:231:430:231:434 | getArrayUint24 output argument | +| bslx.cpp:231:429:231:440 | *call to getArrayUint24 | bslx.cpp:231:454:231:464 | *call to getArrayInt32 | +| bslx.cpp:231:429:231:440 | *call to getArrayUint24 | bslx.cpp:231:455:231:458 | getArrayInt32 output argument | +| bslx.cpp:231:454:231:464 | *call to getArrayInt32 | bslx.cpp:231:479:231:490 | *call to getArrayUint32 | +| bslx.cpp:231:454:231:464 | *call to getArrayInt32 | bslx.cpp:231:480:231:484 | getArrayUint32 output argument | +| bslx.cpp:231:479:231:490 | *call to getArrayUint32 | bslx.cpp:231:504:231:515 | *call to getArrayInt40 | +| bslx.cpp:231:479:231:490 | *call to getArrayUint32 | bslx.cpp:231:505:231:509 | getArrayInt40 output argument | +| bslx.cpp:231:504:231:515 | *call to getArrayInt40 | bslx.cpp:231:530:231:542 | *call to getArrayUint40 | +| bslx.cpp:231:504:231:515 | *call to getArrayInt40 | bslx.cpp:231:531:231:536 | getArrayUint40 output argument | +| bslx.cpp:231:530:231:542 | *call to getArrayUint40 | bslx.cpp:231:556:231:567 | *call to getArrayInt48 | +| bslx.cpp:231:530:231:542 | *call to getArrayUint40 | bslx.cpp:231:557:231:561 | getArrayInt48 output argument | +| bslx.cpp:231:556:231:567 | *call to getArrayInt48 | bslx.cpp:231:582:231:594 | *call to getArrayUint48 | +| bslx.cpp:231:556:231:567 | *call to getArrayInt48 | bslx.cpp:231:583:231:588 | getArrayUint48 output argument | +| bslx.cpp:231:582:231:594 | *call to getArrayUint48 | bslx.cpp:231:608:231:619 | *call to getArrayInt56 | +| bslx.cpp:231:582:231:594 | *call to getArrayUint48 | bslx.cpp:231:609:231:613 | getArrayInt56 output argument | +| bslx.cpp:231:608:231:619 | *call to getArrayInt56 | bslx.cpp:231:634:231:646 | *call to getArrayUint56 | +| bslx.cpp:231:608:231:619 | *call to getArrayInt56 | bslx.cpp:231:635:231:640 | getArrayUint56 output argument | +| bslx.cpp:231:634:231:646 | *call to getArrayUint56 | bslx.cpp:231:660:231:671 | *call to getArrayInt64 | +| bslx.cpp:231:634:231:646 | *call to getArrayUint56 | bslx.cpp:231:661:231:665 | getArrayInt64 output argument | +| bslx.cpp:231:660:231:671 | *call to getArrayInt64 | bslx.cpp:231:686:231:698 | *call to getArrayUint64 | +| bslx.cpp:231:660:231:671 | *call to getArrayInt64 | bslx.cpp:231:687:231:692 | getArrayUint64 output argument | +| bslx.cpp:231:686:231:698 | *call to getArrayUint64 | bslx.cpp:231:714:231:724 | *call to getArrayFloat32 | +| bslx.cpp:231:686:231:698 | *call to getArrayUint64 | bslx.cpp:231:715:231:718 | getArrayFloat32 output argument | +| bslx.cpp:231:714:231:724 | *call to getArrayFloat32 | bslx.cpp:231:740:231:750 | *call to getArrayFloat64 | +| bslx.cpp:231:714:231:724 | *call to getArrayFloat32 | bslx.cpp:231:741:231:744 | getArrayFloat64 output argument | +| bslx.cpp:231:740:231:750 | *call to getArrayFloat64 | bslx.cpp:231:760:231:765 | *call to getString | +| bslx.cpp:231:740:231:750 | *call to getArrayFloat64 | bslx.cpp:231:761:231:763 | getString output argument | +| bslx.cpp:238:57:238:58 | *sb | bslx.cpp:238:50:238:55 | call to GenericInStream | +| bslx.cpp:261:2:261:7 | *stream | bslx.cpp:261:18:261:21 | *call to getLength | +| bslx.cpp:261:18:261:21 | *call to getLength | bslx.cpp:261:32:261:35 | *call to getVersion | +| bslx.cpp:261:32:261:35 | *call to getVersion | bslx.cpp:261:43:261:46 | *call to getInt8 | +| bslx.cpp:261:43:261:46 | *call to getInt8 | bslx.cpp:261:55:261:59 | *call to getUint8 | +| bslx.cpp:261:55:261:59 | *call to getUint8 | bslx.cpp:261:68:261:71 | *call to getInt16 | +| bslx.cpp:261:68:261:71 | *call to getInt16 | bslx.cpp:261:81:261:85 | *call to getUint16 | +| bslx.cpp:261:81:261:85 | *call to getUint16 | bslx.cpp:261:94:261:97 | *call to getInt24 | +| bslx.cpp:261:94:261:97 | *call to getInt24 | bslx.cpp:261:107:261:111 | *call to getUint24 | +| bslx.cpp:261:107:261:111 | *call to getUint24 | bslx.cpp:261:120:261:123 | *call to getInt32 | +| bslx.cpp:261:120:261:123 | *call to getInt32 | bslx.cpp:261:133:261:137 | *call to getUint32 | +| bslx.cpp:261:133:261:137 | *call to getUint32 | bslx.cpp:261:146:261:150 | *call to getInt40 | +| bslx.cpp:261:146:261:150 | *call to getInt40 | bslx.cpp:261:160:261:165 | *call to getUint40 | +| bslx.cpp:261:160:261:165 | *call to getUint40 | bslx.cpp:261:174:261:178 | *call to getInt48 | +| bslx.cpp:261:174:261:178 | *call to getInt48 | bslx.cpp:261:188:261:193 | *call to getUint48 | +| bslx.cpp:261:188:261:193 | *call to getUint48 | bslx.cpp:261:202:261:206 | *call to getInt56 | +| bslx.cpp:261:202:261:206 | *call to getInt56 | bslx.cpp:261:216:261:221 | *call to getUint56 | +| bslx.cpp:261:216:261:221 | *call to getUint56 | bslx.cpp:261:230:261:234 | *call to getInt64 | +| bslx.cpp:261:230:261:234 | *call to getInt64 | bslx.cpp:261:244:261:249 | *call to getUint64 | +| bslx.cpp:261:244:261:249 | *call to getUint64 | bslx.cpp:261:260:261:263 | *call to getFloat32 | +| bslx.cpp:261:260:261:263 | *call to getFloat32 | bslx.cpp:261:274:261:277 | *call to getFloat64 | +| bslx.cpp:261:274:261:277 | *call to getFloat64 | bslx.cpp:261:287:261:292 | *call to getString | +| bslx.cpp:261:274:261:277 | *call to getFloat64 | bslx.cpp:261:288:261:290 | getString output argument | +| bslx.cpp:261:287:261:292 | *call to getString | bslx.cpp:261:305:261:315 | *call to getArrayInt8 | +| bslx.cpp:261:287:261:292 | *call to getString | bslx.cpp:261:306:261:309 | getArrayInt8 output argument | +| bslx.cpp:261:305:261:315 | *call to getArrayInt8 | bslx.cpp:261:329:261:340 | *call to getArrayUint8 | +| bslx.cpp:261:305:261:315 | *call to getArrayInt8 | bslx.cpp:261:330:261:334 | getArrayUint8 output argument | +| bslx.cpp:261:329:261:340 | *call to getArrayUint8 | bslx.cpp:261:354:261:364 | *call to getArrayInt16 | +| bslx.cpp:261:329:261:340 | *call to getArrayUint8 | bslx.cpp:261:355:261:358 | getArrayInt16 output argument | +| bslx.cpp:261:354:261:364 | *call to getArrayInt16 | bslx.cpp:261:379:261:390 | *call to getArrayUint16 | +| bslx.cpp:261:354:261:364 | *call to getArrayInt16 | bslx.cpp:261:380:261:384 | getArrayUint16 output argument | +| bslx.cpp:261:379:261:390 | *call to getArrayUint16 | bslx.cpp:261:404:261:414 | *call to getArrayInt24 | +| bslx.cpp:261:379:261:390 | *call to getArrayUint16 | bslx.cpp:261:405:261:408 | getArrayInt24 output argument | +| bslx.cpp:261:404:261:414 | *call to getArrayInt24 | bslx.cpp:261:429:261:440 | *call to getArrayUint24 | +| bslx.cpp:261:404:261:414 | *call to getArrayInt24 | bslx.cpp:261:430:261:434 | getArrayUint24 output argument | +| bslx.cpp:261:429:261:440 | *call to getArrayUint24 | bslx.cpp:261:454:261:464 | *call to getArrayInt32 | +| bslx.cpp:261:429:261:440 | *call to getArrayUint24 | bslx.cpp:261:455:261:458 | getArrayInt32 output argument | +| bslx.cpp:261:454:261:464 | *call to getArrayInt32 | bslx.cpp:261:479:261:490 | *call to getArrayUint32 | +| bslx.cpp:261:454:261:464 | *call to getArrayInt32 | bslx.cpp:261:480:261:484 | getArrayUint32 output argument | +| bslx.cpp:261:479:261:490 | *call to getArrayUint32 | bslx.cpp:261:504:261:515 | *call to getArrayInt40 | +| bslx.cpp:261:479:261:490 | *call to getArrayUint32 | bslx.cpp:261:505:261:509 | getArrayInt40 output argument | +| bslx.cpp:261:504:261:515 | *call to getArrayInt40 | bslx.cpp:261:530:261:542 | *call to getArrayUint40 | +| bslx.cpp:261:504:261:515 | *call to getArrayInt40 | bslx.cpp:261:531:261:536 | getArrayUint40 output argument | +| bslx.cpp:261:530:261:542 | *call to getArrayUint40 | bslx.cpp:261:556:261:567 | *call to getArrayInt48 | +| bslx.cpp:261:530:261:542 | *call to getArrayUint40 | bslx.cpp:261:557:261:561 | getArrayInt48 output argument | +| bslx.cpp:261:556:261:567 | *call to getArrayInt48 | bslx.cpp:261:582:261:594 | *call to getArrayUint48 | +| bslx.cpp:261:556:261:567 | *call to getArrayInt48 | bslx.cpp:261:583:261:588 | getArrayUint48 output argument | +| bslx.cpp:261:582:261:594 | *call to getArrayUint48 | bslx.cpp:261:608:261:619 | *call to getArrayInt56 | +| bslx.cpp:261:582:261:594 | *call to getArrayUint48 | bslx.cpp:261:609:261:613 | getArrayInt56 output argument | +| bslx.cpp:261:608:261:619 | *call to getArrayInt56 | bslx.cpp:261:634:261:646 | *call to getArrayUint56 | +| bslx.cpp:261:608:261:619 | *call to getArrayInt56 | bslx.cpp:261:635:261:640 | getArrayUint56 output argument | +| bslx.cpp:261:634:261:646 | *call to getArrayUint56 | bslx.cpp:261:660:261:671 | *call to getArrayInt64 | +| bslx.cpp:261:634:261:646 | *call to getArrayUint56 | bslx.cpp:261:661:261:665 | getArrayInt64 output argument | +| bslx.cpp:261:660:261:671 | *call to getArrayInt64 | bslx.cpp:261:686:261:698 | *call to getArrayUint64 | +| bslx.cpp:261:660:261:671 | *call to getArrayInt64 | bslx.cpp:261:687:261:692 | getArrayUint64 output argument | +| bslx.cpp:261:686:261:698 | *call to getArrayUint64 | bslx.cpp:261:714:261:724 | *call to getArrayFloat32 | +| bslx.cpp:261:686:261:698 | *call to getArrayUint64 | bslx.cpp:261:715:261:718 | getArrayFloat32 output argument | +| bslx.cpp:261:714:261:724 | *call to getArrayFloat32 | bslx.cpp:261:740:261:750 | *call to getArrayFloat64 | +| bslx.cpp:261:714:261:724 | *call to getArrayFloat32 | bslx.cpp:261:741:261:744 | getArrayFloat64 output argument | +| bslx.cpp:261:740:261:750 | *call to getArrayFloat64 | bslx.cpp:261:760:261:765 | *call to getString | +| bslx.cpp:261:740:261:750 | *call to getArrayFloat64 | bslx.cpp:261:761:261:763 | getString output argument | +| bslx.cpp:267:41:267:51 | *call to data | bslx.cpp:267:34:267:39 | call to ByteInStream | +| bslx.cpp:269:53:269:58 | *stream | bslx.cpp:269:52:269:63 | *call to bdexStreamIn | +| bslx.cpp:269:53:269:58 | *stream | bslx.cpp:269:61:269:61 | bdexStreamIn output argument | +| bslx.cpp:271:53:271:58 | *stream | bslx.cpp:271:52:271:66 | *call to bdexStreamIn | +| bslx.cpp:271:53:271:58 | *stream | bslx.cpp:271:61:271:61 | bdexStreamIn output argument | +| bslx.cpp:274:52:274:66 | *call to bdexStreamIn | bslx.cpp:274:76:274:81 | *call to getString | +| bslx.cpp:274:52:274:66 | *call to bdexStreamIn | bslx.cpp:274:77:274:79 | getString output argument | +| bslx.cpp:274:53:274:58 | *stream | bslx.cpp:274:52:274:66 | *call to bdexStreamIn | +| bslx.cpp:274:53:274:58 | *stream | bslx.cpp:274:61:274:61 | bdexStreamIn output argument | +| bslx.cpp:280:41:280:51 | *call to data | bslx.cpp:280:34:280:39 | call to ByteInStream | +| bslx.cpp:282:53:282:58 | *stream | bslx.cpp:282:52:282:68 | *call to bdexStreamIn | +| bslx.cpp:282:53:282:58 | *stream | bslx.cpp:282:61:282:63 | bdexStreamIn output argument | +| bslx.cpp:294:41:294:51 | *call to data | bslx.cpp:294:34:294:39 | call to ByteInStream | +| bslx.cpp:296:53:296:58 | *stream | bslx.cpp:296:52:296:68 | *call to bdexStreamIn | +| bslx.cpp:296:53:296:58 | *stream | bslx.cpp:296:61:296:63 | bdexStreamIn output argument | +| bslx.cpp:307:15:307:18 | *data | bslx.cpp:307:2:307:7 | reset output argument | +| bslx.cpp:309:2:309:7 | *stream | bslx.cpp:309:18:309:23 | *call to getString | +| bslx.cpp:309:2:309:7 | *stream | bslx.cpp:309:19:309:21 | getString output argument | +| bslx.cpp:315:41:315:51 | *call to data | bslx.cpp:315:34:315:39 | call to ByteInStream | +| bslx.cpp:318:2:318:7 | *stream | bslx.cpp:318:18:318:23 | *call to getString | +| bslx.cpp:318:2:318:7 | *stream | bslx.cpp:318:19:318:21 | getString output argument | +| bslx.cpp:325:15:325:18 | *data | bslx.cpp:325:2:325:7 | reset output argument | +| bslx.cpp:328:2:328:7 | *stream | bslx.cpp:328:18:328:23 | *call to getString | +| bslx.cpp:328:2:328:7 | *stream | bslx.cpp:328:19:328:21 | getString output argument | +| bslx.cpp:334:41:334:51 | *call to data | bslx.cpp:334:34:334:39 | call to ByteInStream | +| bslx.cpp:336:15:336:19 | *clean | bslx.cpp:336:2:336:7 | reset output argument | +| bslx.cpp:338:2:338:7 | *stream | bslx.cpp:338:18:338:23 | *call to getString | +| bslx.cpp:338:2:338:7 | *stream | bslx.cpp:338:19:338:21 | getString output argument | +| protobuf.cpp:106:22:106:25 | data | protobuf.cpp:106:2:106:4 | ParseFromString output argument | +| protobuf.cpp:113:22:113:25 | *data | protobuf.cpp:113:2:113:4 | ParseFromString output argument | +| protobuf.cpp:120:29:120:32 | data | protobuf.cpp:120:2:120:4 | ParsePartialFromString output argument | +| protobuf.cpp:127:29:127:32 | *data | protobuf.cpp:127:2:127:4 | ParsePartialFromString output argument | +| protobuf.cpp:134:22:134:25 | data | protobuf.cpp:134:2:134:4 | MergeFromString output argument | +| protobuf.cpp:141:22:141:25 | *data | protobuf.cpp:141:2:141:4 | MergeFromString output argument | +| protobuf.cpp:148:29:148:32 | data | protobuf.cpp:148:2:148:4 | MergePartialFromString output argument | +| protobuf.cpp:155:29:155:32 | *data | protobuf.cpp:155:2:155:4 | MergePartialFromString output argument | +| protobuf.cpp:162:21:162:31 | *call to data | protobuf.cpp:162:2:162:4 | ParseFromArray output argument | +| protobuf.cpp:169:28:169:38 | *call to data | protobuf.cpp:169:2:169:4 | ParsePartialFromArray output argument | +| protobuf.cpp:176:20:176:23 | *data | protobuf.cpp:176:2:176:4 | ParseFromCord output argument | +| protobuf.cpp:183:27:183:30 | *data | protobuf.cpp:183:2:183:4 | ParsePartialFromCord output argument | +| protobuf.cpp:190:20:190:23 | *data | protobuf.cpp:190:2:190:4 | MergeFromCord output argument | +| protobuf.cpp:197:27:197:30 | *data | protobuf.cpp:197:2:197:4 | MergePartialFromCord output argument | +| protobuf.cpp:204:23:204:25 | *& ... | protobuf.cpp:204:2:204:4 | ParseFromIstream output argument | +| protobuf.cpp:211:30:211:32 | *& ... | protobuf.cpp:211:2:211:4 | ParsePartialFromIstream output argument | +| protobuf.cpp:218:30:218:32 | *& ... | protobuf.cpp:218:2:218:4 | ParseFromZeroCopyStream output argument | +| protobuf.cpp:225:37:225:39 | *& ... | protobuf.cpp:225:2:225:4 | ParsePartialFromZeroCopyStream output argument | +| protobuf.cpp:232:37:232:39 | *& ... | protobuf.cpp:232:2:232:4 | ParseFromBoundedZeroCopyStream output argument | +| protobuf.cpp:239:44:239:46 | *& ... | protobuf.cpp:239:2:239:4 | ParsePartialFromBoundedZeroCopyStream output argument | +| protobuf.cpp:246:37:246:39 | *& ... | protobuf.cpp:246:2:246:4 | MergeFromBoundedZeroCopyStream output argument | +| protobuf.cpp:253:44:253:46 | *& ... | protobuf.cpp:253:2:253:4 | MergePartialFromBoundedZeroCopyStream output argument | +| protobuf.cpp:260:27:260:29 | *& ... | protobuf.cpp:260:2:260:4 | ParseFromCodedStream output argument | +| protobuf.cpp:267:34:267:36 | *& ... | protobuf.cpp:267:2:267:4 | ParsePartialFromCodedStream output argument | +| protobuf.cpp:274:27:274:29 | *& ... | protobuf.cpp:274:2:274:4 | MergeFromCodedStream output argument | +| protobuf.cpp:281:34:281:36 | *& ... | protobuf.cpp:281:2:281:4 | MergePartialFromCodedStream output argument | +| protobuf.cpp:288:22:288:25 | *data | protobuf.cpp:288:2:288:4 | ParseFromString output argument | +| protobuf.cpp:297:2:297:4 | *msg | protobuf.cpp:297:24:297:27 | SerializeToString output argument | +| protobuf.cpp:304:2:304:4 | *msg | protobuf.cpp:304:31:304:34 | SerializePartialToString output argument | +| protobuf.cpp:311:2:311:4 | *msg | protobuf.cpp:311:21:311:24 | AppendToString output argument | +| protobuf.cpp:318:2:318:4 | *msg | protobuf.cpp:318:28:318:31 | AppendPartialToString output argument | +| protobuf.cpp:325:2:325:4 | *msg | protobuf.cpp:325:24:325:27 | SerializeToString output argument | +| protobuf.cpp:332:2:332:4 | *msg | protobuf.cpp:332:31:332:34 | SerializePartialToString output argument | +| protobuf.cpp:339:2:339:4 | *msg | protobuf.cpp:339:21:339:24 | AppendToString output argument | +| protobuf.cpp:346:2:346:4 | *msg | protobuf.cpp:346:28:346:31 | AppendPartialToString output argument | +| protobuf.cpp:353:2:353:4 | *msg | protobuf.cpp:353:23:353:25 | SerializeToArray output argument | +| protobuf.cpp:360:2:360:4 | *msg | protobuf.cpp:360:30:360:32 | SerializePartialToArray output argument | +| protobuf.cpp:367:2:367:4 | *msg | protobuf.cpp:367:22:367:25 | SerializeToCord output argument | +| protobuf.cpp:374:2:374:4 | *msg | protobuf.cpp:374:29:374:32 | SerializePartialToCord output argument | +| protobuf.cpp:381:2:381:4 | *msg | protobuf.cpp:381:19:381:22 | AppendToCord output argument | +| protobuf.cpp:388:2:388:4 | *msg | protobuf.cpp:388:26:388:29 | AppendPartialToCord output argument | +| protobuf.cpp:395:2:395:4 | *msg | protobuf.cpp:395:25:395:28 | SerializeToOstream output argument | +| protobuf.cpp:402:2:402:4 | *msg | protobuf.cpp:402:32:402:35 | SerializePartialToOstream output argument | +| protobuf.cpp:409:2:409:4 | *msg | protobuf.cpp:409:32:409:35 | SerializeToZeroCopyStream output argument | +| protobuf.cpp:416:2:416:4 | *msg | protobuf.cpp:416:39:416:42 | SerializePartialToZeroCopyStream output argument | +| protobuf.cpp:423:2:423:4 | *msg | protobuf.cpp:423:29:423:32 | SerializeToCodedStream output argument | +| protobuf.cpp:430:2:430:4 | *msg | protobuf.cpp:430:36:430:39 | SerializePartialToCodedStream output argument | +| protobuf.cpp:438:7:438:9 | *msg | protobuf.cpp:438:11:438:27 | call to SerializeAsString | +| protobuf.cpp:443:7:443:9 | *msg | protobuf.cpp:443:11:443:34 | call to SerializePartialAsString | +| protobuf.cpp:448:7:448:9 | *msg | protobuf.cpp:448:11:448:25 | call to SerializeAsCord | +| protobuf.cpp:453:7:453:9 | *msg | protobuf.cpp:453:11:453:32 | call to SerializePartialAsCord | +| protobuf.cpp:458:7:458:9 | *msg | protobuf.cpp:458:11:458:27 | call to SerializeAsString | | test.cpp:17:24:17:24 | x | test.cpp:17:10:17:22 | call to ymlStepManual | | test.cpp:21:27:21:27 | x | test.cpp:21:10:21:25 | call to ymlStepGenerated | | test.cpp:25:35:25:35 | x | test.cpp:25:11:25:33 | call to ymlStepManual_with_body | diff --git a/cpp/ql/test/library-tests/dataflow/external-models/test.cpp b/cpp/ql/test/library-tests/dataflow/external-models/test.cpp index bfc7c9ed1148..b0e5016e4697 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/test.cpp +++ b/cpp/ql/test/library-tests/dataflow/external-models/test.cpp @@ -379,6 +379,7 @@ void forward_test() { template struct Container { + using value_type = T; template void emplace(int pos, Args&&... args); @@ -416,6 +417,16 @@ void forward_test_model() { ymlSink(e.x); // $ ir } +void forward_test_member_alias_scalar() { + Container scalar; + scalar.emplace(0, ymlSource()); + ymlSink(scalar.get()); // $ ir + + Container pointer; + pointer.emplace(0, ymlSourcePtr()); + ymlSink(*pointer.get()); // $ ir +} + struct ElementWithDefaultArgument { int x; ElementWithDefaultArgument(int x, int = 0); diff --git a/cpp/ql/test/library-tests/dataflow/external-models/validatemodels.expected b/cpp/ql/test/library-tests/dataflow/external-models/validatemodels.expected index 4e26bf1c2c2c..b1c411ea7c7e 100644 --- a/cpp/ql/test/library-tests/dataflow/external-models/validatemodels.expected +++ b/cpp/ql/test/library-tests/dataflow/external-models/validatemodels.expected @@ -5595,18 +5595,27 @@ | Dubious signature "(z_streamp,unsigned int)" in summary model. | | Unrecognized input specification "Argument[***0]" in summary model. | | Unrecognized input specification "Argument[***1]" in summary model. | +| Unrecognized input specification "Argument[***2]" in summary model. | | Unrecognized input specification "Argument[***3]" in summary model. | | Unrecognized input specification "Argument[***4]" in summary model. | +| Unrecognized input specification "Argument[***5]" in summary model. | | Unrecognized input specification "Argument[****0]" in summary model. | | Unrecognized input specification "Argument[****1]" in summary model. | +| Unrecognized input specification "Argument[****2]" in summary model. | | Unrecognized input specification "Argument[****3]" in summary model. | | Unrecognized input specification "Argument[****4]" in summary model. | +| Unrecognized input specification "Argument[****5]" in summary model. | | Unrecognized input specification "Argument[*****0]" in summary model. | | Unrecognized input specification "Argument[*****1]" in summary model. | +| Unrecognized input specification "Argument[*****2]" in summary model. | +| Unrecognized input specification "Argument[*****3]" in summary model. | +| Unrecognized input specification "Argument[*****4]" in summary model. | +| Unrecognized input specification "Argument[*****5]" in summary model. | | Unrecognized input specification "Field[****hEvent]" in summary model. | | Unrecognized input specification "Field[***hEvent]" in summary model. | | Unrecognized output specification "Argument[***0]" in summary model. | | Unrecognized output specification "Argument[***1]" in summary model. | +| Unrecognized output specification "Argument[***2]" in summary model. | | Unrecognized output specification "Argument[****0]" in summary model. | | Unrecognized output specification "Argument[****1]" in summary model. | | Unrecognized output specification "Argument[*****0]" in summary model. | @@ -5614,7 +5623,15 @@ | Unrecognized output specification "Field[****hEvent]" in summary model. | | Unrecognized output specification "Field[***hEvent]" in summary model. | | Unrecognized output specification "Parameter[***0]" in summary model. | +| Unrecognized output specification "Parameter[***1]" in summary model. | +| Unrecognized output specification "Parameter[***2]" in summary model. | +| Unrecognized output specification "Parameter[***3]" in summary model. | +| Unrecognized output specification "Parameter[***4]" in summary model. | | Unrecognized output specification "Parameter[****0]" in summary model. | +| Unrecognized output specification "Parameter[****1]" in summary model. | +| Unrecognized output specification "Parameter[****2]" in summary model. | +| Unrecognized output specification "Parameter[****3]" in summary model. | +| Unrecognized output specification "Parameter[****4]" in summary model. | | Unrecognized output specification "ReturnValue[*****]" in summary model. | | Unrecognized output specification "ReturnValue[****]" in summary model. | | Unrecognized output specification "ReturnValue[***]" in summary model. | diff --git a/cpp/ql/test/library-tests/dataflow/taint-tests/localTaint.expected b/cpp/ql/test/library-tests/dataflow/taint-tests/localTaint.expected index d4d961a3a048..2a68efe3eb97 100644 --- a/cpp/ql/test/library-tests/dataflow/taint-tests/localTaint.expected +++ b/cpp/ql/test/library-tests/dataflow/taint-tests/localTaint.expected @@ -1809,109 +1809,77 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | format.cpp:169:30:169:30 | s | format.cpp:171:60:171:60 | s | | | format.cpp:170:11:170:16 | call to source | format.cpp:171:63:171:63 | x | | | format.cpp:171:11:171:58 | call to same_signature_as_format_but_different_name | format.cpp:172:8:172:8 | y | | -| map.cpp:21:28:21:28 | call to pair | map.cpp:23:2:23:2 | a | | -| map.cpp:21:28:21:28 | call to pair | map.cpp:24:7:24:7 | a | | -| map.cpp:21:28:21:28 | call to pair | map.cpp:25:7:25:7 | a | | -| map.cpp:21:28:21:28 | call to pair | map.cpp:26:7:26:7 | a | | -| map.cpp:21:31:21:31 | call to pair | map.cpp:28:2:28:2 | b | | -| map.cpp:21:31:21:31 | call to pair | map.cpp:29:7:29:7 | b | | -| map.cpp:21:31:21:31 | call to pair | map.cpp:30:7:30:7 | b | | -| map.cpp:21:31:21:31 | call to pair | map.cpp:31:7:31:7 | b | | -| map.cpp:21:34:21:34 | call to pair | map.cpp:33:2:33:2 | c | | -| map.cpp:21:34:21:34 | call to pair | map.cpp:34:7:34:7 | c | | -| map.cpp:21:34:21:34 | call to pair | map.cpp:35:7:35:7 | c | | -| map.cpp:21:34:21:34 | call to pair | map.cpp:36:7:36:7 | c | | +| map.cpp:21:40:21:40 | call to pair | map.cpp:23:2:23:2 | a | | +| map.cpp:21:40:21:40 | call to pair | map.cpp:24:7:24:7 | a | | +| map.cpp:21:40:21:40 | call to pair | map.cpp:25:7:25:7 | a | | +| map.cpp:21:40:21:40 | call to pair | map.cpp:26:7:26:7 | a | | +| map.cpp:21:43:21:43 | call to pair | map.cpp:28:2:28:2 | b | | +| map.cpp:21:43:21:43 | call to pair | map.cpp:29:7:29:7 | b | | +| map.cpp:21:43:21:43 | call to pair | map.cpp:30:7:30:7 | b | | +| map.cpp:21:43:21:43 | call to pair | map.cpp:31:7:31:7 | b | | +| map.cpp:21:46:21:46 | call to pair | map.cpp:33:2:33:2 | c | | +| map.cpp:21:46:21:46 | call to pair | map.cpp:34:7:34:7 | c | | +| map.cpp:21:46:21:46 | call to pair | map.cpp:35:7:35:7 | c | | +| map.cpp:21:46:21:46 | call to pair | map.cpp:36:7:36:7 | c | | | map.cpp:23:2:23:2 | a [post update] | map.cpp:24:7:24:7 | a | | | map.cpp:23:2:23:2 | a [post update] | map.cpp:25:7:25:7 | a | | | map.cpp:23:2:23:2 | a [post update] | map.cpp:26:7:26:7 | a | | | map.cpp:23:2:23:16 | ... = ... | map.cpp:23:4:23:8 | first [post update] | | | map.cpp:23:2:23:16 | ... = ... | map.cpp:24:9:24:13 | first | | | map.cpp:23:12:23:16 | 123 | map.cpp:23:2:23:16 | ... = ... | | -| map.cpp:24:7:24:7 | a [post update] | map.cpp:25:7:25:7 | a | | -| map.cpp:24:7:24:7 | a [post update] | map.cpp:26:7:26:7 | a | | -| map.cpp:25:7:25:7 | a [post update] | map.cpp:26:7:26:7 | a | | | map.cpp:28:2:28:2 | b [post update] | map.cpp:29:7:29:7 | b | | | map.cpp:28:2:28:2 | b [post update] | map.cpp:30:7:30:7 | b | | | map.cpp:28:2:28:2 | b [post update] | map.cpp:31:7:31:7 | b | | | map.cpp:28:2:28:19 | ... = ... | map.cpp:28:4:28:8 | first [post update] | | | map.cpp:28:2:28:19 | ... = ... | map.cpp:29:9:29:13 | first | | | map.cpp:28:12:28:17 | call to source | map.cpp:28:2:28:19 | ... = ... | | -| map.cpp:29:7:29:7 | b [post update] | map.cpp:30:7:30:7 | b | | -| map.cpp:29:7:29:7 | b [post update] | map.cpp:31:7:31:7 | b | | -| map.cpp:30:7:30:7 | b [post update] | map.cpp:31:7:31:7 | b | | | map.cpp:33:2:33:2 | c [post update] | map.cpp:34:7:34:7 | c | | | map.cpp:33:2:33:2 | c [post update] | map.cpp:35:7:35:7 | c | | | map.cpp:33:2:33:2 | c [post update] | map.cpp:36:7:36:7 | c | | | map.cpp:33:2:33:20 | ... = ... | map.cpp:33:4:33:9 | second [post update] | | | map.cpp:33:2:33:20 | ... = ... | map.cpp:35:9:35:14 | second | | | map.cpp:33:13:33:18 | call to source | map.cpp:33:2:33:20 | ... = ... | | -| map.cpp:34:7:34:7 | c [post update] | map.cpp:35:7:35:7 | c | | -| map.cpp:34:7:34:7 | c [post update] | map.cpp:36:7:36:7 | c | | -| map.cpp:35:7:35:7 | c [post update] | map.cpp:36:7:36:7 | c | | -| map.cpp:38:30:38:42 | call to pair | map.cpp:39:7:39:7 | d | | -| map.cpp:38:30:38:42 | call to pair | map.cpp:40:7:40:7 | d | | -| map.cpp:38:30:38:42 | call to pair | map.cpp:41:7:41:7 | d | | -| map.cpp:38:37:38:41 | 456 | map.cpp:38:30:38:42 | call to pair | TAINT | -| map.cpp:39:7:39:7 | d [post update] | map.cpp:40:7:40:7 | d | | -| map.cpp:39:7:39:7 | d [post update] | map.cpp:41:7:41:7 | d | | -| map.cpp:40:7:40:7 | d [post update] | map.cpp:41:7:41:7 | d | | -| map.cpp:43:30:43:45 | call to pair | map.cpp:44:7:44:7 | e | | -| map.cpp:43:30:43:45 | call to pair | map.cpp:45:7:45:7 | e | | -| map.cpp:43:30:43:45 | call to pair | map.cpp:46:7:46:7 | e | | -| map.cpp:43:40:43:44 | 456 | map.cpp:43:30:43:45 | call to pair | TAINT | -| map.cpp:44:7:44:7 | e [post update] | map.cpp:45:7:45:7 | e | | -| map.cpp:44:7:44:7 | e [post update] | map.cpp:46:7:46:7 | e | | -| map.cpp:45:7:45:7 | e [post update] | map.cpp:46:7:46:7 | e | | -| map.cpp:48:30:48:45 | call to pair | map.cpp:49:7:49:7 | f | | -| map.cpp:48:30:48:45 | call to pair | map.cpp:50:7:50:7 | f | | -| map.cpp:48:30:48:45 | call to pair | map.cpp:51:7:51:7 | f | | -| map.cpp:48:30:48:45 | call to pair | map.cpp:53:30:53:30 | f | | -| map.cpp:48:30:48:45 | call to pair | map.cpp:59:6:59:6 | f | | -| map.cpp:48:37:48:42 | call to source | map.cpp:48:30:48:45 | call to pair | TAINT | -| map.cpp:49:7:49:7 | f [post update] | map.cpp:50:7:50:7 | f | | -| map.cpp:49:7:49:7 | f [post update] | map.cpp:51:7:51:7 | f | | -| map.cpp:49:7:49:7 | f [post update] | map.cpp:53:30:53:30 | f | | -| map.cpp:49:7:49:7 | f [post update] | map.cpp:59:6:59:6 | f | | -| map.cpp:49:9:49:13 | ref arg first | map.cpp:54:9:54:13 | first | | -| map.cpp:49:9:49:13 | ref arg first | map.cpp:60:9:60:13 | first | | -| map.cpp:50:7:50:7 | f [post update] | map.cpp:51:7:51:7 | f | | -| map.cpp:50:7:50:7 | f [post update] | map.cpp:53:30:53:30 | f | | -| map.cpp:50:7:50:7 | f [post update] | map.cpp:59:6:59:6 | f | | -| map.cpp:50:9:50:14 | ref arg second | map.cpp:55:9:55:14 | second | | -| map.cpp:50:9:50:14 | ref arg second | map.cpp:61:9:61:14 | second | | -| map.cpp:53:30:53:30 | f | map.cpp:54:7:54:7 | g | | -| map.cpp:53:30:53:30 | f | map.cpp:55:7:55:7 | g | | -| map.cpp:53:30:53:30 | f | map.cpp:56:7:56:7 | g | | -| map.cpp:54:7:54:7 | g [post update] | map.cpp:55:7:55:7 | g | | -| map.cpp:54:7:54:7 | g [post update] | map.cpp:56:7:56:7 | g | | -| map.cpp:55:7:55:7 | g [post update] | map.cpp:56:7:56:7 | g | | +| map.cpp:38:42:38:54 | call to pair | map.cpp:39:7:39:7 | d | | +| map.cpp:38:42:38:54 | call to pair | map.cpp:40:7:40:7 | d | | +| map.cpp:38:42:38:54 | call to pair | map.cpp:41:7:41:7 | d | | +| map.cpp:38:49:38:53 | 456 | map.cpp:38:42:38:54 | call to pair | TAINT | +| map.cpp:43:42:43:57 | call to pair | map.cpp:44:7:44:7 | e | | +| map.cpp:43:42:43:57 | call to pair | map.cpp:45:7:45:7 | e | | +| map.cpp:43:42:43:57 | call to pair | map.cpp:46:7:46:7 | e | | +| map.cpp:43:52:43:56 | 456 | map.cpp:43:42:43:57 | call to pair | TAINT | +| map.cpp:48:42:48:57 | call to pair | map.cpp:49:7:49:7 | f | | +| map.cpp:48:42:48:57 | call to pair | map.cpp:50:7:50:7 | f | | +| map.cpp:48:42:48:57 | call to pair | map.cpp:51:7:51:7 | f | | +| map.cpp:48:42:48:57 | call to pair | map.cpp:53:42:53:42 | f | | +| map.cpp:48:42:48:57 | call to pair | map.cpp:59:6:59:6 | f | | +| map.cpp:48:49:48:54 | call to source | map.cpp:48:42:48:57 | call to pair | TAINT | +| map.cpp:53:42:53:42 | f | map.cpp:54:7:54:7 | g | | +| map.cpp:53:42:53:42 | f | map.cpp:55:7:55:7 | g | | +| map.cpp:53:42:53:42 | f | map.cpp:56:7:56:7 | g | | | map.cpp:59:6:59:6 | f | map.cpp:59:2:59:6 | ... = ... | | | map.cpp:59:6:59:6 | f | map.cpp:60:7:60:7 | h | | | map.cpp:59:6:59:6 | f | map.cpp:61:7:61:7 | h | | | map.cpp:59:6:59:6 | f | map.cpp:62:7:62:7 | h | | -| map.cpp:60:7:60:7 | h [post update] | map.cpp:61:7:61:7 | h | | -| map.cpp:60:7:60:7 | h [post update] | map.cpp:62:7:62:7 | h | | -| map.cpp:61:7:61:7 | h [post update] | map.cpp:62:7:62:7 | h | | -| map.cpp:64:30:64:42 | call to pair | map.cpp:68:3:68:3 | i | | -| map.cpp:64:30:64:42 | call to pair | map.cpp:70:7:70:7 | i | | -| map.cpp:64:30:64:42 | call to pair | map.cpp:71:7:71:7 | i | | -| map.cpp:64:30:64:42 | call to pair | map.cpp:72:7:72:7 | i | | -| map.cpp:64:37:64:41 | 456 | map.cpp:64:30:64:42 | call to pair | TAINT | -| map.cpp:65:30:65:45 | call to pair | map.cpp:68:10:68:10 | j | | -| map.cpp:65:30:65:45 | call to pair | map.cpp:73:7:73:7 | j | | -| map.cpp:65:30:65:45 | call to pair | map.cpp:74:7:74:7 | j | | -| map.cpp:65:30:65:45 | call to pair | map.cpp:75:7:75:7 | j | | -| map.cpp:65:37:65:42 | call to source | map.cpp:65:30:65:45 | call to pair | TAINT | -| map.cpp:66:30:66:45 | call to pair | map.cpp:69:2:69:2 | k | | -| map.cpp:66:30:66:45 | call to pair | map.cpp:76:7:76:7 | k | | -| map.cpp:66:30:66:45 | call to pair | map.cpp:77:7:77:7 | k | | -| map.cpp:66:30:66:45 | call to pair | map.cpp:78:7:78:7 | k | | -| map.cpp:66:37:66:42 | call to source | map.cpp:66:30:66:45 | call to pair | TAINT | -| map.cpp:67:30:67:42 | call to pair | map.cpp:69:9:69:9 | l | | -| map.cpp:67:30:67:42 | call to pair | map.cpp:79:7:79:7 | l | | -| map.cpp:67:30:67:42 | call to pair | map.cpp:80:7:80:7 | l | | -| map.cpp:67:30:67:42 | call to pair | map.cpp:81:7:81:7 | l | | -| map.cpp:67:37:67:41 | 456 | map.cpp:67:30:67:42 | call to pair | TAINT | +| map.cpp:64:42:64:54 | call to pair | map.cpp:68:3:68:3 | i | | +| map.cpp:64:42:64:54 | call to pair | map.cpp:70:7:70:7 | i | | +| map.cpp:64:42:64:54 | call to pair | map.cpp:71:7:71:7 | i | | +| map.cpp:64:42:64:54 | call to pair | map.cpp:72:7:72:7 | i | | +| map.cpp:64:49:64:53 | 456 | map.cpp:64:42:64:54 | call to pair | TAINT | +| map.cpp:65:42:65:57 | call to pair | map.cpp:68:10:68:10 | j | | +| map.cpp:65:42:65:57 | call to pair | map.cpp:73:7:73:7 | j | | +| map.cpp:65:42:65:57 | call to pair | map.cpp:74:7:74:7 | j | | +| map.cpp:65:42:65:57 | call to pair | map.cpp:75:7:75:7 | j | | +| map.cpp:65:49:65:54 | call to source | map.cpp:65:42:65:57 | call to pair | TAINT | +| map.cpp:66:42:66:57 | call to pair | map.cpp:69:2:69:2 | k | | +| map.cpp:66:42:66:57 | call to pair | map.cpp:76:7:76:7 | k | | +| map.cpp:66:42:66:57 | call to pair | map.cpp:77:7:77:7 | k | | +| map.cpp:66:42:66:57 | call to pair | map.cpp:78:7:78:7 | k | | +| map.cpp:66:49:66:54 | call to source | map.cpp:66:42:66:57 | call to pair | TAINT | +| map.cpp:67:42:67:54 | call to pair | map.cpp:69:9:69:9 | l | | +| map.cpp:67:42:67:54 | call to pair | map.cpp:79:7:79:7 | l | | +| map.cpp:67:42:67:54 | call to pair | map.cpp:80:7:80:7 | l | | +| map.cpp:67:42:67:54 | call to pair | map.cpp:81:7:81:7 | l | | +| map.cpp:67:49:67:53 | 456 | map.cpp:67:42:67:54 | call to pair | TAINT | | map.cpp:68:3:68:3 | ref arg i | map.cpp:70:7:70:7 | i | | | map.cpp:68:3:68:3 | ref arg i | map.cpp:71:7:71:7 | i | | | map.cpp:68:3:68:3 | ref arg i | map.cpp:72:7:72:7 | i | | @@ -1924,21 +1892,6 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:69:9:69:9 | ref arg l | map.cpp:79:7:79:7 | l | | | map.cpp:69:9:69:9 | ref arg l | map.cpp:80:7:80:7 | l | | | map.cpp:69:9:69:9 | ref arg l | map.cpp:81:7:81:7 | l | | -| map.cpp:70:7:70:7 | i [post update] | map.cpp:71:7:71:7 | i | | -| map.cpp:70:7:70:7 | i [post update] | map.cpp:72:7:72:7 | i | | -| map.cpp:71:7:71:7 | i [post update] | map.cpp:72:7:72:7 | i | | -| map.cpp:73:7:73:7 | j [post update] | map.cpp:74:7:74:7 | j | | -| map.cpp:73:7:73:7 | j [post update] | map.cpp:75:7:75:7 | j | | -| map.cpp:74:7:74:7 | j [post update] | map.cpp:75:7:75:7 | j | | -| map.cpp:76:7:76:7 | k [post update] | map.cpp:77:7:77:7 | k | | -| map.cpp:76:7:76:7 | k [post update] | map.cpp:78:7:78:7 | k | | -| map.cpp:77:7:77:7 | k [post update] | map.cpp:78:7:78:7 | k | | -| map.cpp:79:7:79:7 | l [post update] | map.cpp:80:7:80:7 | l | | -| map.cpp:79:7:79:7 | l [post update] | map.cpp:81:7:81:7 | l | | -| map.cpp:80:7:80:7 | l [post update] | map.cpp:81:7:81:7 | l | | -| map.cpp:83:7:83:15 | call to make_pair | map.cpp:83:7:83:29 | call to pair | TAINT | -| map.cpp:86:7:86:15 | call to make_pair | map.cpp:86:7:86:32 | call to pair | TAINT | -| map.cpp:89:7:89:15 | call to make_pair | map.cpp:89:7:89:32 | call to pair | TAINT | | map.cpp:94:6:94:14 | call to make_pair | map.cpp:94:6:94:49 | call to pair | TAINT | | map.cpp:94:6:94:49 | call to pair | map.cpp:94:2:94:49 | ... = ... | | | map.cpp:94:6:94:49 | call to pair | map.cpp:95:7:95:7 | m | | @@ -1946,73 +1899,67 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:94:6:94:49 | call to pair | map.cpp:97:7:97:7 | m | | | map.cpp:94:6:94:49 | call to pair | map.cpp:98:7:98:7 | m | | | map.cpp:94:6:94:49 | call to pair | map.cpp:99:7:99:7 | m | | -| map.cpp:95:7:95:7 | m | map.cpp:95:7:95:7 | call to pair | TAINT | -| map.cpp:97:7:97:7 | m [post update] | map.cpp:98:7:98:7 | m | | -| map.cpp:97:7:97:7 | m [post update] | map.cpp:99:7:99:7 | m | | -| map.cpp:98:7:98:7 | m [post update] | map.cpp:99:7:99:7 | m | | -| map.cpp:105:27:105:28 | call to map | map.cpp:107:7:107:8 | m1 | | -| map.cpp:105:27:105:28 | call to map | map.cpp:113:7:113:8 | m1 | | -| map.cpp:105:27:105:28 | call to map | map.cpp:119:7:119:8 | m1 | | -| map.cpp:105:27:105:28 | call to map | map.cpp:125:7:125:8 | m1 | | -| map.cpp:105:27:105:28 | call to map | map.cpp:146:12:146:13 | m1 | | -| map.cpp:105:27:105:28 | call to map | map.cpp:146:30:146:31 | m1 | | -| map.cpp:105:27:105:28 | call to map | map.cpp:252:1:252:1 | m1 | | -| map.cpp:105:31:105:32 | call to map | map.cpp:108:7:108:8 | m2 | | -| map.cpp:105:31:105:32 | call to map | map.cpp:114:7:114:8 | m2 | | -| map.cpp:105:31:105:32 | call to map | map.cpp:120:7:120:8 | m2 | | -| map.cpp:105:31:105:32 | call to map | map.cpp:126:7:126:8 | m2 | | -| map.cpp:105:31:105:32 | call to map | map.cpp:133:30:133:31 | m2 | | -| map.cpp:105:31:105:32 | call to map | map.cpp:134:32:134:33 | m2 | | -| map.cpp:105:31:105:32 | call to map | map.cpp:136:7:136:8 | m2 | | -| map.cpp:105:31:105:32 | call to map | map.cpp:152:12:152:13 | m2 | | -| map.cpp:105:31:105:32 | call to map | map.cpp:152:30:152:31 | m2 | | -| map.cpp:105:31:105:32 | call to map | map.cpp:252:1:252:1 | m2 | | -| map.cpp:105:35:105:36 | call to map | map.cpp:109:7:109:8 | m3 | | -| map.cpp:105:35:105:36 | call to map | map.cpp:115:7:115:8 | m3 | | -| map.cpp:105:35:105:36 | call to map | map.cpp:121:7:121:8 | m3 | | -| map.cpp:105:35:105:36 | call to map | map.cpp:127:7:127:8 | m3 | | -| map.cpp:105:35:105:36 | call to map | map.cpp:158:12:158:13 | m3 | | -| map.cpp:105:35:105:36 | call to map | map.cpp:158:30:158:31 | m3 | | -| map.cpp:105:35:105:36 | call to map | map.cpp:252:1:252:1 | m3 | | -| map.cpp:105:39:105:40 | call to map | map.cpp:110:7:110:8 | m4 | | -| map.cpp:105:39:105:40 | call to map | map.cpp:110:17:110:18 | m4 | | -| map.cpp:105:39:105:40 | call to map | map.cpp:116:7:116:8 | m4 | | -| map.cpp:105:39:105:40 | call to map | map.cpp:122:7:122:8 | m4 | | -| map.cpp:105:39:105:40 | call to map | map.cpp:128:7:128:8 | m4 | | -| map.cpp:105:39:105:40 | call to map | map.cpp:252:1:252:1 | m4 | | -| map.cpp:105:43:105:44 | call to map | map.cpp:111:7:111:8 | m5 | | -| map.cpp:105:43:105:44 | call to map | map.cpp:117:7:117:8 | m5 | | -| map.cpp:105:43:105:44 | call to map | map.cpp:123:7:123:8 | m5 | | -| map.cpp:105:43:105:44 | call to map | map.cpp:129:7:129:8 | m5 | | -| map.cpp:105:43:105:44 | call to map | map.cpp:252:1:252:1 | m5 | | -| map.cpp:105:47:105:48 | call to map | map.cpp:112:7:112:8 | m6 | | -| map.cpp:105:47:105:48 | call to map | map.cpp:112:27:112:28 | m6 | | -| map.cpp:105:47:105:48 | call to map | map.cpp:118:7:118:8 | m6 | | -| map.cpp:105:47:105:48 | call to map | map.cpp:124:7:124:8 | m6 | | -| map.cpp:105:47:105:48 | call to map | map.cpp:130:7:130:8 | m6 | | -| map.cpp:105:47:105:48 | call to map | map.cpp:252:1:252:1 | m6 | | +| map.cpp:105:39:105:40 | call to map | map.cpp:107:7:107:8 | m1 | | +| map.cpp:105:39:105:40 | call to map | map.cpp:113:7:113:8 | m1 | | +| map.cpp:105:39:105:40 | call to map | map.cpp:119:7:119:8 | m1 | | +| map.cpp:105:39:105:40 | call to map | map.cpp:125:7:125:8 | m1 | | +| map.cpp:105:39:105:40 | call to map | map.cpp:146:12:146:13 | m1 | | +| map.cpp:105:39:105:40 | call to map | map.cpp:146:30:146:31 | m1 | | +| map.cpp:105:39:105:40 | call to map | map.cpp:252:1:252:1 | m1 | | +| map.cpp:105:43:105:44 | call to map | map.cpp:108:7:108:8 | m2 | | +| map.cpp:105:43:105:44 | call to map | map.cpp:114:7:114:8 | m2 | | +| map.cpp:105:43:105:44 | call to map | map.cpp:120:7:120:8 | m2 | | +| map.cpp:105:43:105:44 | call to map | map.cpp:126:7:126:8 | m2 | | +| map.cpp:105:43:105:44 | call to map | map.cpp:133:42:133:43 | m2 | | +| map.cpp:105:43:105:44 | call to map | map.cpp:134:44:134:45 | m2 | | +| map.cpp:105:43:105:44 | call to map | map.cpp:136:7:136:8 | m2 | | +| map.cpp:105:43:105:44 | call to map | map.cpp:152:12:152:13 | m2 | | +| map.cpp:105:43:105:44 | call to map | map.cpp:152:30:152:31 | m2 | | +| map.cpp:105:43:105:44 | call to map | map.cpp:252:1:252:1 | m2 | | +| map.cpp:105:47:105:48 | call to map | map.cpp:109:7:109:8 | m3 | | +| map.cpp:105:47:105:48 | call to map | map.cpp:115:7:115:8 | m3 | | +| map.cpp:105:47:105:48 | call to map | map.cpp:121:7:121:8 | m3 | | +| map.cpp:105:47:105:48 | call to map | map.cpp:127:7:127:8 | m3 | | +| map.cpp:105:47:105:48 | call to map | map.cpp:158:12:158:13 | m3 | | +| map.cpp:105:47:105:48 | call to map | map.cpp:158:30:158:31 | m3 | | +| map.cpp:105:47:105:48 | call to map | map.cpp:252:1:252:1 | m3 | | +| map.cpp:105:51:105:52 | call to map | map.cpp:110:7:110:8 | m4 | | +| map.cpp:105:51:105:52 | call to map | map.cpp:110:17:110:18 | m4 | | +| map.cpp:105:51:105:52 | call to map | map.cpp:116:7:116:8 | m4 | | +| map.cpp:105:51:105:52 | call to map | map.cpp:122:7:122:8 | m4 | | +| map.cpp:105:51:105:52 | call to map | map.cpp:128:7:128:8 | m4 | | +| map.cpp:105:51:105:52 | call to map | map.cpp:252:1:252:1 | m4 | | +| map.cpp:105:55:105:56 | call to map | map.cpp:111:7:111:8 | m5 | | +| map.cpp:105:55:105:56 | call to map | map.cpp:117:7:117:8 | m5 | | +| map.cpp:105:55:105:56 | call to map | map.cpp:123:7:123:8 | m5 | | +| map.cpp:105:55:105:56 | call to map | map.cpp:129:7:129:8 | m5 | | +| map.cpp:105:55:105:56 | call to map | map.cpp:252:1:252:1 | m5 | | +| map.cpp:105:59:105:60 | call to map | map.cpp:112:7:112:8 | m6 | | +| map.cpp:105:59:105:60 | call to map | map.cpp:112:27:112:28 | m6 | | +| map.cpp:105:59:105:60 | call to map | map.cpp:118:7:118:8 | m6 | | +| map.cpp:105:59:105:60 | call to map | map.cpp:124:7:124:8 | m6 | | +| map.cpp:105:59:105:60 | call to map | map.cpp:130:7:130:8 | m6 | | +| map.cpp:105:59:105:60 | call to map | map.cpp:252:1:252:1 | m6 | | | map.cpp:107:7:107:8 | ref arg m1 | map.cpp:113:7:113:8 | m1 | | | map.cpp:107:7:107:8 | ref arg m1 | map.cpp:119:7:119:8 | m1 | | | map.cpp:107:7:107:8 | ref arg m1 | map.cpp:125:7:125:8 | m1 | | | map.cpp:107:7:107:8 | ref arg m1 | map.cpp:146:12:146:13 | m1 | | | map.cpp:107:7:107:8 | ref arg m1 | map.cpp:146:30:146:31 | m1 | | | map.cpp:107:7:107:8 | ref arg m1 | map.cpp:252:1:252:1 | m1 | | -| map.cpp:107:17:107:30 | call to make_pair | map.cpp:107:17:107:44 | call to pair | TAINT | -| map.cpp:107:17:107:44 | call to pair | map.cpp:107:7:107:8 | ref arg m1 | TAINT | -| map.cpp:107:17:107:44 | call to pair | map.cpp:107:10:107:15 | call to insert | TAINT | +| map.cpp:107:17:107:30 | call to make_pair | map.cpp:107:7:107:8 | ref arg m1 | TAINT | +| map.cpp:107:17:107:30 | call to make_pair | map.cpp:107:10:107:15 | call to insert | TAINT | | map.cpp:107:47:107:51 | first | map.cpp:107:7:107:51 | call to iterator | | | map.cpp:108:7:108:8 | ref arg m2 | map.cpp:114:7:114:8 | m2 | | | map.cpp:108:7:108:8 | ref arg m2 | map.cpp:120:7:120:8 | m2 | | | map.cpp:108:7:108:8 | ref arg m2 | map.cpp:126:7:126:8 | m2 | | -| map.cpp:108:7:108:8 | ref arg m2 | map.cpp:133:30:133:31 | m2 | | -| map.cpp:108:7:108:8 | ref arg m2 | map.cpp:134:32:134:33 | m2 | | +| map.cpp:108:7:108:8 | ref arg m2 | map.cpp:133:42:133:43 | m2 | | +| map.cpp:108:7:108:8 | ref arg m2 | map.cpp:134:44:134:45 | m2 | | | map.cpp:108:7:108:8 | ref arg m2 | map.cpp:136:7:136:8 | m2 | | | map.cpp:108:7:108:8 | ref arg m2 | map.cpp:152:12:152:13 | m2 | | | map.cpp:108:7:108:8 | ref arg m2 | map.cpp:152:30:152:31 | m2 | | | map.cpp:108:7:108:8 | ref arg m2 | map.cpp:252:1:252:1 | m2 | | -| map.cpp:108:17:108:30 | call to make_pair | map.cpp:108:17:108:47 | call to pair | TAINT | -| map.cpp:108:17:108:47 | call to pair | map.cpp:108:7:108:8 | ref arg m2 | TAINT | -| map.cpp:108:17:108:47 | call to pair | map.cpp:108:10:108:15 | call to insert | TAINT | +| map.cpp:108:17:108:30 | call to make_pair | map.cpp:108:7:108:8 | ref arg m2 | TAINT | +| map.cpp:108:17:108:30 | call to make_pair | map.cpp:108:10:108:15 | call to insert | TAINT | | map.cpp:108:50:108:54 | first | map.cpp:108:7:108:54 | call to iterator | | | map.cpp:109:7:109:8 | ref arg m3 | map.cpp:115:7:115:8 | m3 | | | map.cpp:109:7:109:8 | ref arg m3 | map.cpp:121:7:121:8 | m3 | | @@ -2020,9 +1967,8 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:109:7:109:8 | ref arg m3 | map.cpp:158:12:158:13 | m3 | | | map.cpp:109:7:109:8 | ref arg m3 | map.cpp:158:30:158:31 | m3 | | | map.cpp:109:7:109:8 | ref arg m3 | map.cpp:252:1:252:1 | m3 | | -| map.cpp:109:17:109:30 | call to make_pair | map.cpp:109:17:109:47 | call to pair | TAINT | -| map.cpp:109:17:109:47 | call to pair | map.cpp:109:7:109:8 | ref arg m3 | TAINT | -| map.cpp:109:17:109:47 | call to pair | map.cpp:109:10:109:15 | call to insert | TAINT | +| map.cpp:109:17:109:30 | call to make_pair | map.cpp:109:7:109:8 | ref arg m3 | TAINT | +| map.cpp:109:17:109:30 | call to make_pair | map.cpp:109:10:109:15 | call to insert | TAINT | | map.cpp:109:50:109:54 | first | map.cpp:109:7:109:54 | call to iterator | | | map.cpp:110:7:110:8 | ref arg m4 | map.cpp:116:7:116:8 | m4 | | | map.cpp:110:7:110:8 | ref arg m4 | map.cpp:122:7:122:8 | m4 | | @@ -2035,10 +1981,9 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:110:17:110:18 | ref arg m4 | map.cpp:128:7:128:8 | m4 | | | map.cpp:110:17:110:18 | ref arg m4 | map.cpp:252:1:252:1 | m4 | | | map.cpp:110:20:110:24 | call to begin | map.cpp:110:17:110:26 | call to iterator | TAINT | -| map.cpp:110:29:110:70 | call to pair | map.cpp:110:7:110:8 | ref arg m4 | TAINT | -| map.cpp:110:29:110:70 | call to pair | map.cpp:110:10:110:15 | call to insert | TAINT | -| map.cpp:110:29:110:70 | call to pair | map.cpp:110:29:110:70 | call to pair | TAINT | -| map.cpp:110:62:110:67 | call to source | map.cpp:110:29:110:70 | call to pair | TAINT | +| map.cpp:110:29:110:82 | call to pair | map.cpp:110:7:110:8 | ref arg m4 | TAINT | +| map.cpp:110:29:110:82 | call to pair | map.cpp:110:10:110:15 | call to insert | TAINT | +| map.cpp:110:74:110:79 | call to source | map.cpp:110:29:110:82 | call to pair | TAINT | | map.cpp:111:7:111:8 | ref arg m5 | map.cpp:117:7:117:8 | m5 | | | map.cpp:111:7:111:8 | ref arg m5 | map.cpp:123:7:123:8 | m5 | | | map.cpp:111:7:111:8 | ref arg m5 | map.cpp:129:7:129:8 | m5 | | @@ -2072,8 +2017,8 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:119:7:119:8 | ref arg m1 | map.cpp:252:1:252:1 | m1 | | | map.cpp:120:7:120:8 | m2 | map.cpp:120:10:120:13 | call to find | TAINT | | map.cpp:120:7:120:8 | ref arg m2 | map.cpp:126:7:126:8 | m2 | | -| map.cpp:120:7:120:8 | ref arg m2 | map.cpp:133:30:133:31 | m2 | | -| map.cpp:120:7:120:8 | ref arg m2 | map.cpp:134:32:134:33 | m2 | | +| map.cpp:120:7:120:8 | ref arg m2 | map.cpp:133:42:133:43 | m2 | | +| map.cpp:120:7:120:8 | ref arg m2 | map.cpp:134:44:134:45 | m2 | | | map.cpp:120:7:120:8 | ref arg m2 | map.cpp:136:7:136:8 | m2 | | | map.cpp:120:7:120:8 | ref arg m2 | map.cpp:152:12:152:13 | m2 | | | map.cpp:120:7:120:8 | ref arg m2 | map.cpp:152:30:152:31 | m2 | | @@ -2097,8 +2042,8 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:125:7:125:8 | ref arg m1 | map.cpp:146:30:146:31 | m1 | | | map.cpp:125:7:125:8 | ref arg m1 | map.cpp:252:1:252:1 | m1 | | | map.cpp:126:7:126:8 | m2 | map.cpp:126:10:126:13 | call to find | TAINT | -| map.cpp:126:7:126:8 | ref arg m2 | map.cpp:133:30:133:31 | m2 | | -| map.cpp:126:7:126:8 | ref arg m2 | map.cpp:134:32:134:33 | m2 | | +| map.cpp:126:7:126:8 | ref arg m2 | map.cpp:133:42:133:43 | m2 | | +| map.cpp:126:7:126:8 | ref arg m2 | map.cpp:134:44:134:45 | m2 | | | map.cpp:126:7:126:8 | ref arg m2 | map.cpp:136:7:136:8 | m2 | | | map.cpp:126:7:126:8 | ref arg m2 | map.cpp:152:12:152:13 | m2 | | | map.cpp:126:7:126:8 | ref arg m2 | map.cpp:152:30:152:31 | m2 | | @@ -2113,18 +2058,18 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:129:7:129:8 | ref arg m5 | map.cpp:252:1:252:1 | m5 | | | map.cpp:130:7:130:8 | m6 | map.cpp:130:10:130:13 | call to find | TAINT | | map.cpp:130:7:130:8 | ref arg m6 | map.cpp:252:1:252:1 | m6 | | -| map.cpp:133:30:133:31 | m2 | map.cpp:133:30:133:32 | call to map | | -| map.cpp:133:30:133:32 | call to map | map.cpp:137:7:137:8 | m7 | | -| map.cpp:133:30:133:32 | call to map | map.cpp:140:7:140:8 | m7 | | -| map.cpp:133:30:133:32 | call to map | map.cpp:252:1:252:1 | m7 | | -| map.cpp:134:31:134:33 | call to map | map.cpp:138:7:138:8 | m8 | | -| map.cpp:134:31:134:33 | call to map | map.cpp:141:7:141:8 | m8 | | -| map.cpp:134:31:134:33 | call to map | map.cpp:252:1:252:1 | m8 | | -| map.cpp:134:32:134:33 | m2 | map.cpp:134:31:134:33 | call to map | | -| map.cpp:135:27:135:28 | call to map | map.cpp:136:2:136:3 | m9 | | -| map.cpp:135:27:135:28 | call to map | map.cpp:139:7:139:8 | m9 | | -| map.cpp:135:27:135:28 | call to map | map.cpp:142:7:142:8 | m9 | | -| map.cpp:135:27:135:28 | call to map | map.cpp:252:1:252:1 | m9 | | +| map.cpp:133:42:133:43 | m2 | map.cpp:133:42:133:44 | call to map | | +| map.cpp:133:42:133:44 | call to map | map.cpp:137:7:137:8 | m7 | | +| map.cpp:133:42:133:44 | call to map | map.cpp:140:7:140:8 | m7 | | +| map.cpp:133:42:133:44 | call to map | map.cpp:252:1:252:1 | m7 | | +| map.cpp:134:43:134:45 | call to map | map.cpp:138:7:138:8 | m8 | | +| map.cpp:134:43:134:45 | call to map | map.cpp:141:7:141:8 | m8 | | +| map.cpp:134:43:134:45 | call to map | map.cpp:252:1:252:1 | m8 | | +| map.cpp:134:44:134:45 | m2 | map.cpp:134:43:134:45 | call to map | | +| map.cpp:135:39:135:40 | call to map | map.cpp:136:2:136:3 | m9 | | +| map.cpp:135:39:135:40 | call to map | map.cpp:139:7:139:8 | m9 | | +| map.cpp:135:39:135:40 | call to map | map.cpp:142:7:142:8 | m9 | | +| map.cpp:135:39:135:40 | call to map | map.cpp:252:1:252:1 | m9 | | | map.cpp:136:2:136:3 | ref arg m9 | map.cpp:139:7:139:8 | m9 | | | map.cpp:136:2:136:3 | ref arg m9 | map.cpp:142:7:142:8 | m9 | | | map.cpp:136:2:136:3 | ref arg m9 | map.cpp:252:1:252:1 | m9 | | @@ -2157,7 +2102,6 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:146:40:146:41 | ref arg i1 | map.cpp:148:9:148:10 | i1 | | | map.cpp:146:40:146:41 | ref arg i1 | map.cpp:149:8:149:9 | i1 | | | map.cpp:146:40:146:41 | ref arg i1 | map.cpp:150:8:150:9 | i1 | | -| map.cpp:148:8:148:8 | call to operator* | map.cpp:148:8:148:10 | call to pair | TAINT | | map.cpp:148:9:148:10 | i1 | map.cpp:148:8:148:8 | call to operator* | TAINT | | map.cpp:148:9:148:10 | ref arg i1 | map.cpp:146:24:146:25 | i1 | | | map.cpp:148:9:148:10 | ref arg i1 | map.cpp:146:40:146:41 | i1 | | @@ -2194,7 +2138,6 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:152:40:152:41 | ref arg i2 | map.cpp:154:9:154:10 | i2 | | | map.cpp:152:40:152:41 | ref arg i2 | map.cpp:155:8:155:9 | i2 | | | map.cpp:152:40:152:41 | ref arg i2 | map.cpp:156:8:156:9 | i2 | | -| map.cpp:154:8:154:8 | call to operator* | map.cpp:154:8:154:10 | call to pair | TAINT | | map.cpp:154:9:154:10 | i2 | map.cpp:154:8:154:8 | call to operator* | TAINT | | map.cpp:154:9:154:10 | ref arg i2 | map.cpp:152:24:152:25 | i2 | | | map.cpp:154:9:154:10 | ref arg i2 | map.cpp:152:40:152:41 | i2 | | @@ -2231,7 +2174,6 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:158:40:158:41 | ref arg i3 | map.cpp:160:9:160:10 | i3 | | | map.cpp:158:40:158:41 | ref arg i3 | map.cpp:161:8:161:9 | i3 | | | map.cpp:158:40:158:41 | ref arg i3 | map.cpp:162:8:162:9 | i3 | | -| map.cpp:160:8:160:8 | call to operator* | map.cpp:160:8:160:10 | call to pair | TAINT | | map.cpp:160:9:160:10 | i3 | map.cpp:160:8:160:8 | call to operator* | TAINT | | map.cpp:160:9:160:10 | ref arg i3 | map.cpp:158:24:158:25 | i3 | | | map.cpp:160:9:160:10 | ref arg i3 | map.cpp:158:40:158:41 | i3 | | @@ -2250,18 +2192,18 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:162:8:162:9 | ref arg i3 | map.cpp:160:9:160:10 | i3 | | | map.cpp:162:8:162:9 | ref arg i3 | map.cpp:161:8:161:9 | i3 | | | map.cpp:162:8:162:9 | ref arg i3 | map.cpp:162:8:162:9 | i3 | | -| map.cpp:166:27:166:29 | call to map | map.cpp:167:7:167:9 | m10 | | -| map.cpp:166:27:166:29 | call to map | map.cpp:171:7:171:9 | m10 | | -| map.cpp:166:27:166:29 | call to map | map.cpp:252:1:252:1 | m10 | | -| map.cpp:166:32:166:34 | call to map | map.cpp:168:7:168:9 | m11 | | -| map.cpp:166:32:166:34 | call to map | map.cpp:172:7:172:9 | m11 | | -| map.cpp:166:32:166:34 | call to map | map.cpp:252:1:252:1 | m11 | | -| map.cpp:166:37:166:39 | call to map | map.cpp:169:7:169:9 | m12 | | -| map.cpp:166:37:166:39 | call to map | map.cpp:173:7:173:9 | m12 | | -| map.cpp:166:37:166:39 | call to map | map.cpp:252:1:252:1 | m12 | | -| map.cpp:166:42:166:44 | call to map | map.cpp:170:7:170:9 | m13 | | -| map.cpp:166:42:166:44 | call to map | map.cpp:174:7:174:9 | m13 | | -| map.cpp:166:42:166:44 | call to map | map.cpp:252:1:252:1 | m13 | | +| map.cpp:166:39:166:41 | call to map | map.cpp:167:7:167:9 | m10 | | +| map.cpp:166:39:166:41 | call to map | map.cpp:171:7:171:9 | m10 | | +| map.cpp:166:39:166:41 | call to map | map.cpp:252:1:252:1 | m10 | | +| map.cpp:166:44:166:46 | call to map | map.cpp:168:7:168:9 | m11 | | +| map.cpp:166:44:166:46 | call to map | map.cpp:172:7:172:9 | m11 | | +| map.cpp:166:44:166:46 | call to map | map.cpp:252:1:252:1 | m11 | | +| map.cpp:166:49:166:51 | call to map | map.cpp:169:7:169:9 | m12 | | +| map.cpp:166:49:166:51 | call to map | map.cpp:173:7:173:9 | m12 | | +| map.cpp:166:49:166:51 | call to map | map.cpp:252:1:252:1 | m12 | | +| map.cpp:166:54:166:56 | call to map | map.cpp:170:7:170:9 | m13 | | +| map.cpp:166:54:166:56 | call to map | map.cpp:174:7:174:9 | m13 | | +| map.cpp:166:54:166:56 | call to map | map.cpp:252:1:252:1 | m13 | | | map.cpp:167:7:167:9 | m10 | map.cpp:167:10:167:10 | call to operator[] | TAINT | | map.cpp:167:7:167:9 | ref arg m10 | map.cpp:171:7:171:9 | m10 | | | map.cpp:167:7:167:9 | ref arg m10 | map.cpp:252:1:252:1 | m10 | | @@ -2294,17 +2236,17 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:173:7:173:9 | ref arg m12 | map.cpp:252:1:252:1 | m12 | | | map.cpp:174:7:174:9 | m13 | map.cpp:174:10:174:10 | call to operator[] | TAINT | | map.cpp:174:7:174:9 | ref arg m13 | map.cpp:252:1:252:1 | m13 | | -| map.cpp:177:27:177:29 | call to map | map.cpp:178:2:178:4 | m14 | | -| map.cpp:177:27:177:29 | call to map | map.cpp:179:2:179:4 | m14 | | -| map.cpp:177:27:177:29 | call to map | map.cpp:180:2:180:4 | m14 | | -| map.cpp:177:27:177:29 | call to map | map.cpp:181:2:181:4 | m14 | | -| map.cpp:177:27:177:29 | call to map | map.cpp:182:7:182:9 | m14 | | -| map.cpp:177:27:177:29 | call to map | map.cpp:183:7:183:9 | m14 | | -| map.cpp:177:27:177:29 | call to map | map.cpp:184:7:184:9 | m14 | | -| map.cpp:177:27:177:29 | call to map | map.cpp:185:7:185:9 | m14 | | -| map.cpp:177:27:177:29 | call to map | map.cpp:186:7:186:9 | m14 | | -| map.cpp:177:27:177:29 | call to map | map.cpp:187:7:187:9 | m14 | | -| map.cpp:177:27:177:29 | call to map | map.cpp:252:1:252:1 | m14 | | +| map.cpp:177:39:177:41 | call to map | map.cpp:178:2:178:4 | m14 | | +| map.cpp:177:39:177:41 | call to map | map.cpp:179:2:179:4 | m14 | | +| map.cpp:177:39:177:41 | call to map | map.cpp:180:2:180:4 | m14 | | +| map.cpp:177:39:177:41 | call to map | map.cpp:181:2:181:4 | m14 | | +| map.cpp:177:39:177:41 | call to map | map.cpp:182:7:182:9 | m14 | | +| map.cpp:177:39:177:41 | call to map | map.cpp:183:7:183:9 | m14 | | +| map.cpp:177:39:177:41 | call to map | map.cpp:184:7:184:9 | m14 | | +| map.cpp:177:39:177:41 | call to map | map.cpp:185:7:185:9 | m14 | | +| map.cpp:177:39:177:41 | call to map | map.cpp:186:7:186:9 | m14 | | +| map.cpp:177:39:177:41 | call to map | map.cpp:187:7:187:9 | m14 | | +| map.cpp:177:39:177:41 | call to map | map.cpp:252:1:252:1 | m14 | | | map.cpp:178:2:178:4 | ref arg m14 | map.cpp:179:2:179:4 | m14 | | | map.cpp:178:2:178:4 | ref arg m14 | map.cpp:180:2:180:4 | m14 | | | map.cpp:178:2:178:4 | ref arg m14 | map.cpp:181:2:181:4 | m14 | | @@ -2315,9 +2257,8 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:178:2:178:4 | ref arg m14 | map.cpp:186:7:186:9 | m14 | | | map.cpp:178:2:178:4 | ref arg m14 | map.cpp:187:7:187:9 | m14 | | | map.cpp:178:2:178:4 | ref arg m14 | map.cpp:252:1:252:1 | m14 | | -| map.cpp:178:13:178:26 | call to make_pair | map.cpp:178:13:178:36 | call to pair | TAINT | -| map.cpp:178:13:178:36 | call to pair | map.cpp:178:2:178:4 | ref arg m14 | TAINT | -| map.cpp:178:13:178:36 | call to pair | map.cpp:178:6:178:11 | call to insert | TAINT | +| map.cpp:178:13:178:26 | call to make_pair | map.cpp:178:2:178:4 | ref arg m14 | TAINT | +| map.cpp:178:13:178:26 | call to make_pair | map.cpp:178:6:178:11 | call to insert | TAINT | | map.cpp:179:2:179:4 | ref arg m14 | map.cpp:180:2:180:4 | m14 | | | map.cpp:179:2:179:4 | ref arg m14 | map.cpp:181:2:181:4 | m14 | | | map.cpp:179:2:179:4 | ref arg m14 | map.cpp:182:7:182:9 | m14 | | @@ -2327,9 +2268,8 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:179:2:179:4 | ref arg m14 | map.cpp:186:7:186:9 | m14 | | | map.cpp:179:2:179:4 | ref arg m14 | map.cpp:187:7:187:9 | m14 | | | map.cpp:179:2:179:4 | ref arg m14 | map.cpp:252:1:252:1 | m14 | | -| map.cpp:179:13:179:26 | call to make_pair | map.cpp:179:13:179:41 | call to pair | TAINT | -| map.cpp:179:13:179:41 | call to pair | map.cpp:179:2:179:4 | ref arg m14 | TAINT | -| map.cpp:179:13:179:41 | call to pair | map.cpp:179:6:179:11 | call to insert | TAINT | +| map.cpp:179:13:179:26 | call to make_pair | map.cpp:179:2:179:4 | ref arg m14 | TAINT | +| map.cpp:179:13:179:26 | call to make_pair | map.cpp:179:6:179:11 | call to insert | TAINT | | map.cpp:180:2:180:4 | ref arg m14 | map.cpp:181:2:181:4 | m14 | | | map.cpp:180:2:180:4 | ref arg m14 | map.cpp:182:7:182:9 | m14 | | | map.cpp:180:2:180:4 | ref arg m14 | map.cpp:183:7:183:9 | m14 | | @@ -2338,9 +2278,8 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:180:2:180:4 | ref arg m14 | map.cpp:186:7:186:9 | m14 | | | map.cpp:180:2:180:4 | ref arg m14 | map.cpp:187:7:187:9 | m14 | | | map.cpp:180:2:180:4 | ref arg m14 | map.cpp:252:1:252:1 | m14 | | -| map.cpp:180:13:180:26 | call to make_pair | map.cpp:180:13:180:41 | call to pair | TAINT | -| map.cpp:180:13:180:41 | call to pair | map.cpp:180:2:180:4 | ref arg m14 | TAINT | -| map.cpp:180:13:180:41 | call to pair | map.cpp:180:6:180:11 | call to insert | TAINT | +| map.cpp:180:13:180:26 | call to make_pair | map.cpp:180:2:180:4 | ref arg m14 | TAINT | +| map.cpp:180:13:180:26 | call to make_pair | map.cpp:180:6:180:11 | call to insert | TAINT | | map.cpp:181:2:181:4 | ref arg m14 | map.cpp:182:7:182:9 | m14 | | | map.cpp:181:2:181:4 | ref arg m14 | map.cpp:183:7:183:9 | m14 | | | map.cpp:181:2:181:4 | ref arg m14 | map.cpp:184:7:184:9 | m14 | | @@ -2348,9 +2287,8 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:181:2:181:4 | ref arg m14 | map.cpp:186:7:186:9 | m14 | | | map.cpp:181:2:181:4 | ref arg m14 | map.cpp:187:7:187:9 | m14 | | | map.cpp:181:2:181:4 | ref arg m14 | map.cpp:252:1:252:1 | m14 | | -| map.cpp:181:13:181:26 | call to make_pair | map.cpp:181:13:181:36 | call to pair | TAINT | -| map.cpp:181:13:181:36 | call to pair | map.cpp:181:2:181:4 | ref arg m14 | TAINT | -| map.cpp:181:13:181:36 | call to pair | map.cpp:181:6:181:11 | call to insert | TAINT | +| map.cpp:181:13:181:26 | call to make_pair | map.cpp:181:2:181:4 | ref arg m14 | TAINT | +| map.cpp:181:13:181:26 | call to make_pair | map.cpp:181:6:181:11 | call to insert | TAINT | | map.cpp:182:7:182:9 | m14 | map.cpp:182:11:182:21 | call to lower_bound | TAINT | | map.cpp:182:7:182:9 | ref arg m14 | map.cpp:183:7:183:9 | m14 | | | map.cpp:182:7:182:9 | ref arg m14 | map.cpp:184:7:184:9 | m14 | | @@ -2381,40 +2319,38 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:187:7:187:9 | m14 | map.cpp:187:11:187:21 | call to equal_range | TAINT | | map.cpp:187:7:187:9 | ref arg m14 | map.cpp:252:1:252:1 | m14 | | | map.cpp:187:28:187:33 | second | map.cpp:187:7:187:33 | call to iterator | | -| map.cpp:190:27:190:29 | call to map | map.cpp:191:2:191:4 | m15 | | -| map.cpp:190:27:190:29 | call to map | map.cpp:193:7:193:9 | m15 | | -| map.cpp:190:27:190:29 | call to map | map.cpp:197:2:197:4 | m15 | | -| map.cpp:190:27:190:29 | call to map | map.cpp:199:7:199:9 | m15 | | -| map.cpp:190:27:190:29 | call to map | map.cpp:252:1:252:1 | m15 | | -| map.cpp:190:32:190:34 | call to map | map.cpp:194:7:194:9 | m16 | | -| map.cpp:190:32:190:34 | call to map | map.cpp:197:11:197:13 | m16 | | -| map.cpp:190:32:190:34 | call to map | map.cpp:200:7:200:9 | m16 | | -| map.cpp:190:32:190:34 | call to map | map.cpp:252:1:252:1 | m16 | | -| map.cpp:190:37:190:39 | call to map | map.cpp:195:7:195:9 | m17 | | -| map.cpp:190:37:190:39 | call to map | map.cpp:198:2:198:4 | m17 | | -| map.cpp:190:37:190:39 | call to map | map.cpp:201:7:201:9 | m17 | | -| map.cpp:190:37:190:39 | call to map | map.cpp:252:1:252:1 | m17 | | -| map.cpp:190:42:190:44 | call to map | map.cpp:192:2:192:4 | m18 | | -| map.cpp:190:42:190:44 | call to map | map.cpp:196:7:196:9 | m18 | | -| map.cpp:190:42:190:44 | call to map | map.cpp:198:11:198:13 | m18 | | -| map.cpp:190:42:190:44 | call to map | map.cpp:202:7:202:9 | m18 | | -| map.cpp:190:42:190:44 | call to map | map.cpp:252:1:252:1 | m18 | | +| map.cpp:190:39:190:41 | call to map | map.cpp:191:2:191:4 | m15 | | +| map.cpp:190:39:190:41 | call to map | map.cpp:193:7:193:9 | m15 | | +| map.cpp:190:39:190:41 | call to map | map.cpp:197:2:197:4 | m15 | | +| map.cpp:190:39:190:41 | call to map | map.cpp:199:7:199:9 | m15 | | +| map.cpp:190:39:190:41 | call to map | map.cpp:252:1:252:1 | m15 | | +| map.cpp:190:44:190:46 | call to map | map.cpp:194:7:194:9 | m16 | | +| map.cpp:190:44:190:46 | call to map | map.cpp:197:11:197:13 | m16 | | +| map.cpp:190:44:190:46 | call to map | map.cpp:200:7:200:9 | m16 | | +| map.cpp:190:44:190:46 | call to map | map.cpp:252:1:252:1 | m16 | | +| map.cpp:190:49:190:51 | call to map | map.cpp:195:7:195:9 | m17 | | +| map.cpp:190:49:190:51 | call to map | map.cpp:198:2:198:4 | m17 | | +| map.cpp:190:49:190:51 | call to map | map.cpp:201:7:201:9 | m17 | | +| map.cpp:190:49:190:51 | call to map | map.cpp:252:1:252:1 | m17 | | +| map.cpp:190:54:190:56 | call to map | map.cpp:192:2:192:4 | m18 | | +| map.cpp:190:54:190:56 | call to map | map.cpp:196:7:196:9 | m18 | | +| map.cpp:190:54:190:56 | call to map | map.cpp:198:11:198:13 | m18 | | +| map.cpp:190:54:190:56 | call to map | map.cpp:202:7:202:9 | m18 | | +| map.cpp:190:54:190:56 | call to map | map.cpp:252:1:252:1 | m18 | | | map.cpp:191:2:191:4 | ref arg m15 | map.cpp:193:7:193:9 | m15 | | | map.cpp:191:2:191:4 | ref arg m15 | map.cpp:197:2:197:4 | m15 | | | map.cpp:191:2:191:4 | ref arg m15 | map.cpp:199:7:199:9 | m15 | | | map.cpp:191:2:191:4 | ref arg m15 | map.cpp:252:1:252:1 | m15 | | -| map.cpp:191:13:191:57 | call to pair | map.cpp:191:2:191:4 | ref arg m15 | TAINT | -| map.cpp:191:13:191:57 | call to pair | map.cpp:191:6:191:11 | call to insert | TAINT | -| map.cpp:191:13:191:57 | call to pair | map.cpp:191:13:191:57 | call to pair | TAINT | -| map.cpp:191:49:191:54 | call to source | map.cpp:191:13:191:57 | call to pair | TAINT | +| map.cpp:191:13:191:69 | call to pair | map.cpp:191:2:191:4 | ref arg m15 | TAINT | +| map.cpp:191:13:191:69 | call to pair | map.cpp:191:6:191:11 | call to insert | TAINT | +| map.cpp:191:61:191:66 | call to source | map.cpp:191:13:191:69 | call to pair | TAINT | | map.cpp:192:2:192:4 | ref arg m18 | map.cpp:196:7:196:9 | m18 | | | map.cpp:192:2:192:4 | ref arg m18 | map.cpp:198:11:198:13 | m18 | | | map.cpp:192:2:192:4 | ref arg m18 | map.cpp:202:7:202:9 | m18 | | | map.cpp:192:2:192:4 | ref arg m18 | map.cpp:252:1:252:1 | m18 | | -| map.cpp:192:13:192:57 | call to pair | map.cpp:192:2:192:4 | ref arg m18 | TAINT | -| map.cpp:192:13:192:57 | call to pair | map.cpp:192:6:192:11 | call to insert | TAINT | -| map.cpp:192:13:192:57 | call to pair | map.cpp:192:13:192:57 | call to pair | TAINT | -| map.cpp:192:49:192:54 | call to source | map.cpp:192:13:192:57 | call to pair | TAINT | +| map.cpp:192:13:192:69 | call to pair | map.cpp:192:2:192:4 | ref arg m18 | TAINT | +| map.cpp:192:13:192:69 | call to pair | map.cpp:192:6:192:11 | call to insert | TAINT | +| map.cpp:192:61:192:66 | call to source | map.cpp:192:13:192:69 | call to pair | TAINT | | map.cpp:193:7:193:9 | m15 | map.cpp:193:7:193:9 | call to map | | | map.cpp:194:7:194:9 | m16 | map.cpp:194:7:194:9 | call to map | | | map.cpp:195:7:195:9 | m17 | map.cpp:195:7:195:9 | call to map | | @@ -2431,58 +2367,54 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:200:7:200:9 | m16 | map.cpp:200:7:200:9 | call to map | | | map.cpp:201:7:201:9 | m17 | map.cpp:201:7:201:9 | call to map | | | map.cpp:202:7:202:9 | m18 | map.cpp:202:7:202:9 | call to map | | -| map.cpp:205:27:205:29 | call to map | map.cpp:206:2:206:4 | m19 | | -| map.cpp:205:27:205:29 | call to map | map.cpp:210:7:210:9 | m19 | | -| map.cpp:205:27:205:29 | call to map | map.cpp:214:2:214:4 | m19 | | -| map.cpp:205:27:205:29 | call to map | map.cpp:216:7:216:9 | m19 | | -| map.cpp:205:27:205:29 | call to map | map.cpp:252:1:252:1 | m19 | | -| map.cpp:205:32:205:34 | call to map | map.cpp:207:2:207:4 | m20 | | -| map.cpp:205:32:205:34 | call to map | map.cpp:211:7:211:9 | m20 | | -| map.cpp:205:32:205:34 | call to map | map.cpp:214:12:214:14 | m20 | | -| map.cpp:205:32:205:34 | call to map | map.cpp:217:7:217:9 | m20 | | -| map.cpp:205:32:205:34 | call to map | map.cpp:252:1:252:1 | m20 | | -| map.cpp:205:37:205:39 | call to map | map.cpp:208:2:208:4 | m21 | | -| map.cpp:205:37:205:39 | call to map | map.cpp:212:7:212:9 | m21 | | -| map.cpp:205:37:205:39 | call to map | map.cpp:215:2:215:4 | m21 | | -| map.cpp:205:37:205:39 | call to map | map.cpp:218:7:218:9 | m21 | | -| map.cpp:205:37:205:39 | call to map | map.cpp:252:1:252:1 | m21 | | -| map.cpp:205:42:205:44 | call to map | map.cpp:209:2:209:4 | m22 | | -| map.cpp:205:42:205:44 | call to map | map.cpp:213:7:213:9 | m22 | | -| map.cpp:205:42:205:44 | call to map | map.cpp:215:12:215:14 | m22 | | -| map.cpp:205:42:205:44 | call to map | map.cpp:219:7:219:9 | m22 | | -| map.cpp:205:42:205:44 | call to map | map.cpp:252:1:252:1 | m22 | | +| map.cpp:205:39:205:41 | call to map | map.cpp:206:2:206:4 | m19 | | +| map.cpp:205:39:205:41 | call to map | map.cpp:210:7:210:9 | m19 | | +| map.cpp:205:39:205:41 | call to map | map.cpp:214:2:214:4 | m19 | | +| map.cpp:205:39:205:41 | call to map | map.cpp:216:7:216:9 | m19 | | +| map.cpp:205:39:205:41 | call to map | map.cpp:252:1:252:1 | m19 | | +| map.cpp:205:44:205:46 | call to map | map.cpp:207:2:207:4 | m20 | | +| map.cpp:205:44:205:46 | call to map | map.cpp:211:7:211:9 | m20 | | +| map.cpp:205:44:205:46 | call to map | map.cpp:214:12:214:14 | m20 | | +| map.cpp:205:44:205:46 | call to map | map.cpp:217:7:217:9 | m20 | | +| map.cpp:205:44:205:46 | call to map | map.cpp:252:1:252:1 | m20 | | +| map.cpp:205:49:205:51 | call to map | map.cpp:208:2:208:4 | m21 | | +| map.cpp:205:49:205:51 | call to map | map.cpp:212:7:212:9 | m21 | | +| map.cpp:205:49:205:51 | call to map | map.cpp:215:2:215:4 | m21 | | +| map.cpp:205:49:205:51 | call to map | map.cpp:218:7:218:9 | m21 | | +| map.cpp:205:49:205:51 | call to map | map.cpp:252:1:252:1 | m21 | | +| map.cpp:205:54:205:56 | call to map | map.cpp:209:2:209:4 | m22 | | +| map.cpp:205:54:205:56 | call to map | map.cpp:213:7:213:9 | m22 | | +| map.cpp:205:54:205:56 | call to map | map.cpp:215:12:215:14 | m22 | | +| map.cpp:205:54:205:56 | call to map | map.cpp:219:7:219:9 | m22 | | +| map.cpp:205:54:205:56 | call to map | map.cpp:252:1:252:1 | m22 | | | map.cpp:206:2:206:4 | ref arg m19 | map.cpp:210:7:210:9 | m19 | | | map.cpp:206:2:206:4 | ref arg m19 | map.cpp:214:2:214:4 | m19 | | | map.cpp:206:2:206:4 | ref arg m19 | map.cpp:216:7:216:9 | m19 | | | map.cpp:206:2:206:4 | ref arg m19 | map.cpp:252:1:252:1 | m19 | | -| map.cpp:206:13:206:57 | call to pair | map.cpp:206:2:206:4 | ref arg m19 | TAINT | -| map.cpp:206:13:206:57 | call to pair | map.cpp:206:6:206:11 | call to insert | TAINT | -| map.cpp:206:13:206:57 | call to pair | map.cpp:206:13:206:57 | call to pair | TAINT | -| map.cpp:206:49:206:54 | call to source | map.cpp:206:13:206:57 | call to pair | TAINT | +| map.cpp:206:13:206:69 | call to pair | map.cpp:206:2:206:4 | ref arg m19 | TAINT | +| map.cpp:206:13:206:69 | call to pair | map.cpp:206:6:206:11 | call to insert | TAINT | +| map.cpp:206:61:206:66 | call to source | map.cpp:206:13:206:69 | call to pair | TAINT | | map.cpp:207:2:207:4 | ref arg m20 | map.cpp:211:7:211:9 | m20 | | | map.cpp:207:2:207:4 | ref arg m20 | map.cpp:214:12:214:14 | m20 | | | map.cpp:207:2:207:4 | ref arg m20 | map.cpp:217:7:217:9 | m20 | | | map.cpp:207:2:207:4 | ref arg m20 | map.cpp:252:1:252:1 | m20 | | -| map.cpp:207:13:207:51 | call to pair | map.cpp:207:2:207:4 | ref arg m20 | TAINT | -| map.cpp:207:13:207:51 | call to pair | map.cpp:207:6:207:11 | call to insert | TAINT | -| map.cpp:207:13:207:51 | call to pair | map.cpp:207:13:207:51 | call to pair | TAINT | -| map.cpp:207:46:207:50 | def | map.cpp:207:13:207:51 | call to pair | TAINT | +| map.cpp:207:13:207:63 | call to pair | map.cpp:207:2:207:4 | ref arg m20 | TAINT | +| map.cpp:207:13:207:63 | call to pair | map.cpp:207:6:207:11 | call to insert | TAINT | +| map.cpp:207:58:207:62 | def | map.cpp:207:13:207:63 | call to pair | TAINT | | map.cpp:208:2:208:4 | ref arg m21 | map.cpp:212:7:212:9 | m21 | | | map.cpp:208:2:208:4 | ref arg m21 | map.cpp:215:2:215:4 | m21 | | | map.cpp:208:2:208:4 | ref arg m21 | map.cpp:218:7:218:9 | m21 | | | map.cpp:208:2:208:4 | ref arg m21 | map.cpp:252:1:252:1 | m21 | | -| map.cpp:208:13:208:51 | call to pair | map.cpp:208:2:208:4 | ref arg m21 | TAINT | -| map.cpp:208:13:208:51 | call to pair | map.cpp:208:6:208:11 | call to insert | TAINT | -| map.cpp:208:13:208:51 | call to pair | map.cpp:208:13:208:51 | call to pair | TAINT | -| map.cpp:208:46:208:50 | def | map.cpp:208:13:208:51 | call to pair | TAINT | +| map.cpp:208:13:208:63 | call to pair | map.cpp:208:2:208:4 | ref arg m21 | TAINT | +| map.cpp:208:13:208:63 | call to pair | map.cpp:208:6:208:11 | call to insert | TAINT | +| map.cpp:208:58:208:62 | def | map.cpp:208:13:208:63 | call to pair | TAINT | | map.cpp:209:2:209:4 | ref arg m22 | map.cpp:213:7:213:9 | m22 | | | map.cpp:209:2:209:4 | ref arg m22 | map.cpp:215:12:215:14 | m22 | | | map.cpp:209:2:209:4 | ref arg m22 | map.cpp:219:7:219:9 | m22 | | | map.cpp:209:2:209:4 | ref arg m22 | map.cpp:252:1:252:1 | m22 | | -| map.cpp:209:13:209:57 | call to pair | map.cpp:209:2:209:4 | ref arg m22 | TAINT | -| map.cpp:209:13:209:57 | call to pair | map.cpp:209:6:209:11 | call to insert | TAINT | -| map.cpp:209:13:209:57 | call to pair | map.cpp:209:13:209:57 | call to pair | TAINT | -| map.cpp:209:49:209:54 | call to source | map.cpp:209:13:209:57 | call to pair | TAINT | +| map.cpp:209:13:209:69 | call to pair | map.cpp:209:2:209:4 | ref arg m22 | TAINT | +| map.cpp:209:13:209:69 | call to pair | map.cpp:209:6:209:11 | call to insert | TAINT | +| map.cpp:209:61:209:66 | call to source | map.cpp:209:13:209:69 | call to pair | TAINT | | map.cpp:210:7:210:9 | m19 | map.cpp:210:7:210:9 | call to map | | | map.cpp:211:7:211:9 | m20 | map.cpp:211:7:211:9 | call to map | | | map.cpp:212:7:212:9 | m21 | map.cpp:212:7:212:9 | call to map | | @@ -2501,15 +2433,16 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:217:7:217:9 | m20 | map.cpp:217:7:217:9 | call to map | | | map.cpp:218:7:218:9 | m21 | map.cpp:218:7:218:9 | call to map | | | map.cpp:219:7:219:9 | m22 | map.cpp:219:7:219:9 | call to map | | -| map.cpp:222:27:222:29 | call to map | map.cpp:223:2:223:4 | m23 | | -| map.cpp:222:27:222:29 | call to map | map.cpp:224:2:224:4 | m23 | | -| map.cpp:222:27:222:29 | call to map | map.cpp:225:7:225:9 | m23 | | -| map.cpp:222:27:222:29 | call to map | map.cpp:226:7:226:9 | m23 | | -| map.cpp:222:27:222:29 | call to map | map.cpp:226:17:226:19 | m23 | | -| map.cpp:222:27:222:29 | call to map | map.cpp:227:7:227:9 | m23 | | -| map.cpp:222:27:222:29 | call to map | map.cpp:228:2:228:4 | m23 | | -| map.cpp:222:27:222:29 | call to map | map.cpp:229:7:229:9 | m23 | | -| map.cpp:222:27:222:29 | call to map | map.cpp:252:1:252:1 | m23 | | +| map.cpp:222:39:222:41 | call to map | map.cpp:223:2:223:4 | m23 | | +| map.cpp:222:39:222:41 | call to map | map.cpp:224:2:224:4 | m23 | | +| map.cpp:222:39:222:41 | call to map | map.cpp:225:7:225:9 | m23 | | +| map.cpp:222:39:222:41 | call to map | map.cpp:226:7:226:9 | m23 | | +| map.cpp:222:39:222:41 | call to map | map.cpp:226:17:226:19 | m23 | | +| map.cpp:222:39:222:41 | call to map | map.cpp:227:7:227:9 | m23 | | +| map.cpp:222:39:222:41 | call to map | map.cpp:228:2:228:4 | m23 | | +| map.cpp:222:39:222:41 | call to map | map.cpp:229:7:229:9 | m23 | | +| map.cpp:222:39:222:41 | call to map | map.cpp:252:1:252:1 | m23 | | +| map.cpp:222:103:222:108 | call to source | map.cpp:222:44:222:111 | call to pair | TAINT | | map.cpp:223:2:223:4 | ref arg m23 | map.cpp:224:2:224:4 | m23 | | | map.cpp:223:2:223:4 | ref arg m23 | map.cpp:225:7:225:9 | m23 | | | map.cpp:223:2:223:4 | ref arg m23 | map.cpp:226:7:226:9 | m23 | | @@ -2518,10 +2451,9 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:223:2:223:4 | ref arg m23 | map.cpp:228:2:228:4 | m23 | | | map.cpp:223:2:223:4 | ref arg m23 | map.cpp:229:7:229:9 | m23 | | | map.cpp:223:2:223:4 | ref arg m23 | map.cpp:252:1:252:1 | m23 | | -| map.cpp:223:13:223:57 | call to pair | map.cpp:223:2:223:4 | ref arg m23 | TAINT | -| map.cpp:223:13:223:57 | call to pair | map.cpp:223:6:223:11 | call to insert | TAINT | -| map.cpp:223:13:223:57 | call to pair | map.cpp:223:13:223:57 | call to pair | TAINT | -| map.cpp:223:49:223:54 | call to source | map.cpp:223:13:223:57 | call to pair | TAINT | +| map.cpp:223:13:223:69 | call to pair | map.cpp:223:2:223:4 | ref arg m23 | TAINT | +| map.cpp:223:13:223:69 | call to pair | map.cpp:223:6:223:11 | call to insert | TAINT | +| map.cpp:223:61:223:66 | call to source | map.cpp:223:13:223:69 | call to pair | TAINT | | map.cpp:224:2:224:4 | ref arg m23 | map.cpp:225:7:225:9 | m23 | | | map.cpp:224:2:224:4 | ref arg m23 | map.cpp:226:7:226:9 | m23 | | | map.cpp:224:2:224:4 | ref arg m23 | map.cpp:226:17:226:19 | m23 | | @@ -2529,10 +2461,9 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:224:2:224:4 | ref arg m23 | map.cpp:228:2:228:4 | m23 | | | map.cpp:224:2:224:4 | ref arg m23 | map.cpp:229:7:229:9 | m23 | | | map.cpp:224:2:224:4 | ref arg m23 | map.cpp:252:1:252:1 | m23 | | -| map.cpp:224:13:224:57 | call to pair | map.cpp:224:2:224:4 | ref arg m23 | TAINT | -| map.cpp:224:13:224:57 | call to pair | map.cpp:224:6:224:11 | call to insert | TAINT | -| map.cpp:224:13:224:57 | call to pair | map.cpp:224:13:224:57 | call to pair | TAINT | -| map.cpp:224:49:224:54 | call to source | map.cpp:224:13:224:57 | call to pair | TAINT | +| map.cpp:224:13:224:69 | call to pair | map.cpp:224:2:224:4 | ref arg m23 | TAINT | +| map.cpp:224:13:224:69 | call to pair | map.cpp:224:6:224:11 | call to insert | TAINT | +| map.cpp:224:61:224:66 | call to source | map.cpp:224:13:224:69 | call to pair | TAINT | | map.cpp:225:7:225:9 | m23 | map.cpp:225:7:225:9 | call to map | | | map.cpp:226:7:226:9 | m23 | map.cpp:226:11:226:15 | call to erase | TAINT | | map.cpp:226:7:226:9 | ref arg m23 | map.cpp:227:7:227:9 | m23 | | @@ -2549,18 +2480,19 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:228:2:228:4 | ref arg m23 | map.cpp:229:7:229:9 | m23 | | | map.cpp:228:2:228:4 | ref arg m23 | map.cpp:252:1:252:1 | m23 | | | map.cpp:229:7:229:9 | m23 | map.cpp:229:7:229:9 | call to map | | -| map.cpp:232:27:232:29 | call to map | map.cpp:233:7:233:9 | m24 | | -| map.cpp:232:27:232:29 | call to map | map.cpp:234:7:234:9 | m24 | | -| map.cpp:232:27:232:29 | call to map | map.cpp:235:7:235:9 | m24 | | -| map.cpp:232:27:232:29 | call to map | map.cpp:236:7:236:9 | m24 | | -| map.cpp:232:27:232:29 | call to map | map.cpp:252:1:252:1 | m24 | | -| map.cpp:232:32:232:34 | call to map | map.cpp:237:7:237:9 | m25 | | -| map.cpp:232:32:232:34 | call to map | map.cpp:237:24:237:26 | m25 | | -| map.cpp:232:32:232:34 | call to map | map.cpp:238:7:238:9 | m25 | | -| map.cpp:232:32:232:34 | call to map | map.cpp:239:7:239:9 | m25 | | -| map.cpp:232:32:232:34 | call to map | map.cpp:239:24:239:26 | m25 | | -| map.cpp:232:32:232:34 | call to map | map.cpp:240:7:240:9 | m25 | | -| map.cpp:232:32:232:34 | call to map | map.cpp:252:1:252:1 | m25 | | +| map.cpp:232:39:232:41 | call to map | map.cpp:233:7:233:9 | m24 | | +| map.cpp:232:39:232:41 | call to map | map.cpp:234:7:234:9 | m24 | | +| map.cpp:232:39:232:41 | call to map | map.cpp:235:7:235:9 | m24 | | +| map.cpp:232:39:232:41 | call to map | map.cpp:236:7:236:9 | m24 | | +| map.cpp:232:39:232:41 | call to map | map.cpp:252:1:252:1 | m24 | | +| map.cpp:232:44:232:46 | call to map | map.cpp:237:7:237:9 | m25 | | +| map.cpp:232:44:232:46 | call to map | map.cpp:237:24:237:26 | m25 | | +| map.cpp:232:44:232:46 | call to map | map.cpp:238:7:238:9 | m25 | | +| map.cpp:232:44:232:46 | call to map | map.cpp:239:7:239:9 | m25 | | +| map.cpp:232:44:232:46 | call to map | map.cpp:239:24:239:26 | m25 | | +| map.cpp:232:44:232:46 | call to map | map.cpp:240:7:240:9 | m25 | | +| map.cpp:232:44:232:46 | call to map | map.cpp:252:1:252:1 | m25 | | +| map.cpp:232:105:232:110 | call to source | map.cpp:232:49:232:113 | call to pair | TAINT | | map.cpp:233:7:233:9 | m24 | map.cpp:233:11:233:17 | call to emplace | TAINT | | map.cpp:233:7:233:9 | ref arg m24 | map.cpp:234:7:234:9 | m24 | | | map.cpp:233:7:233:9 | ref arg m24 | map.cpp:235:7:235:9 | m24 | | @@ -2605,18 +2537,18 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:239:44:239:49 | call to source | map.cpp:239:7:239:9 | ref arg m25 | TAINT | | map.cpp:239:44:239:49 | call to source | map.cpp:239:11:239:22 | call to emplace_hint | TAINT | | map.cpp:240:7:240:9 | m25 | map.cpp:240:7:240:9 | call to map | | -| map.cpp:243:27:243:29 | call to map | map.cpp:244:7:244:9 | m26 | | -| map.cpp:243:27:243:29 | call to map | map.cpp:245:7:245:9 | m26 | | -| map.cpp:243:27:243:29 | call to map | map.cpp:246:7:246:9 | m26 | | -| map.cpp:243:27:243:29 | call to map | map.cpp:247:7:247:9 | m26 | | -| map.cpp:243:27:243:29 | call to map | map.cpp:252:1:252:1 | m26 | | -| map.cpp:243:32:243:34 | call to map | map.cpp:248:7:248:9 | m27 | | -| map.cpp:243:32:243:34 | call to map | map.cpp:248:23:248:25 | m27 | | -| map.cpp:243:32:243:34 | call to map | map.cpp:249:7:249:9 | m27 | | -| map.cpp:243:32:243:34 | call to map | map.cpp:250:7:250:9 | m27 | | -| map.cpp:243:32:243:34 | call to map | map.cpp:250:23:250:25 | m27 | | -| map.cpp:243:32:243:34 | call to map | map.cpp:251:7:251:9 | m27 | | -| map.cpp:243:32:243:34 | call to map | map.cpp:252:1:252:1 | m27 | | +| map.cpp:243:39:243:41 | call to map | map.cpp:244:7:244:9 | m26 | | +| map.cpp:243:39:243:41 | call to map | map.cpp:245:7:245:9 | m26 | | +| map.cpp:243:39:243:41 | call to map | map.cpp:246:7:246:9 | m26 | | +| map.cpp:243:39:243:41 | call to map | map.cpp:247:7:247:9 | m26 | | +| map.cpp:243:39:243:41 | call to map | map.cpp:252:1:252:1 | m26 | | +| map.cpp:243:44:243:46 | call to map | map.cpp:248:7:248:9 | m27 | | +| map.cpp:243:44:243:46 | call to map | map.cpp:248:23:248:25 | m27 | | +| map.cpp:243:44:243:46 | call to map | map.cpp:249:7:249:9 | m27 | | +| map.cpp:243:44:243:46 | call to map | map.cpp:250:7:250:9 | m27 | | +| map.cpp:243:44:243:46 | call to map | map.cpp:250:23:250:25 | m27 | | +| map.cpp:243:44:243:46 | call to map | map.cpp:251:7:251:9 | m27 | | +| map.cpp:243:44:243:46 | call to map | map.cpp:252:1:252:1 | m27 | | | map.cpp:244:7:244:9 | m26 | map.cpp:244:11:244:21 | call to try_emplace | TAINT | | map.cpp:244:7:244:9 | ref arg m26 | map.cpp:245:7:245:9 | m26 | | | map.cpp:244:7:244:9 | ref arg m26 | map.cpp:246:7:246:9 | m26 | | @@ -2661,47 +2593,47 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:250:43:250:48 | call to source | map.cpp:250:7:250:9 | ref arg m27 | TAINT | | map.cpp:250:43:250:48 | call to source | map.cpp:250:11:250:21 | call to try_emplace | TAINT | | map.cpp:251:7:251:9 | m27 | map.cpp:251:7:251:9 | call to map | | -| map.cpp:257:37:257:38 | call to unordered_map | map.cpp:259:7:259:8 | m1 | | -| map.cpp:257:37:257:38 | call to unordered_map | map.cpp:265:7:265:8 | m1 | | -| map.cpp:257:37:257:38 | call to unordered_map | map.cpp:271:7:271:8 | m1 | | -| map.cpp:257:37:257:38 | call to unordered_map | map.cpp:277:7:277:8 | m1 | | -| map.cpp:257:37:257:38 | call to unordered_map | map.cpp:298:12:298:13 | m1 | | -| map.cpp:257:37:257:38 | call to unordered_map | map.cpp:298:30:298:31 | m1 | | -| map.cpp:257:37:257:38 | call to unordered_map | map.cpp:438:1:438:1 | m1 | | -| map.cpp:257:41:257:42 | call to unordered_map | map.cpp:260:7:260:8 | m2 | | -| map.cpp:257:41:257:42 | call to unordered_map | map.cpp:266:7:266:8 | m2 | | -| map.cpp:257:41:257:42 | call to unordered_map | map.cpp:272:7:272:8 | m2 | | -| map.cpp:257:41:257:42 | call to unordered_map | map.cpp:278:7:278:8 | m2 | | -| map.cpp:257:41:257:42 | call to unordered_map | map.cpp:285:40:285:41 | m2 | | -| map.cpp:257:41:257:42 | call to unordered_map | map.cpp:286:42:286:43 | m2 | | -| map.cpp:257:41:257:42 | call to unordered_map | map.cpp:288:7:288:8 | m2 | | -| map.cpp:257:41:257:42 | call to unordered_map | map.cpp:304:12:304:13 | m2 | | -| map.cpp:257:41:257:42 | call to unordered_map | map.cpp:304:30:304:31 | m2 | | -| map.cpp:257:41:257:42 | call to unordered_map | map.cpp:438:1:438:1 | m2 | | -| map.cpp:257:45:257:46 | call to unordered_map | map.cpp:261:7:261:8 | m3 | | -| map.cpp:257:45:257:46 | call to unordered_map | map.cpp:267:7:267:8 | m3 | | -| map.cpp:257:45:257:46 | call to unordered_map | map.cpp:273:7:273:8 | m3 | | -| map.cpp:257:45:257:46 | call to unordered_map | map.cpp:279:7:279:8 | m3 | | -| map.cpp:257:45:257:46 | call to unordered_map | map.cpp:310:12:310:13 | m3 | | -| map.cpp:257:45:257:46 | call to unordered_map | map.cpp:310:30:310:31 | m3 | | -| map.cpp:257:45:257:46 | call to unordered_map | map.cpp:438:1:438:1 | m3 | | -| map.cpp:257:49:257:50 | call to unordered_map | map.cpp:262:7:262:8 | m4 | | -| map.cpp:257:49:257:50 | call to unordered_map | map.cpp:262:17:262:18 | m4 | | -| map.cpp:257:49:257:50 | call to unordered_map | map.cpp:268:7:268:8 | m4 | | -| map.cpp:257:49:257:50 | call to unordered_map | map.cpp:274:7:274:8 | m4 | | -| map.cpp:257:49:257:50 | call to unordered_map | map.cpp:280:7:280:8 | m4 | | -| map.cpp:257:49:257:50 | call to unordered_map | map.cpp:438:1:438:1 | m4 | | -| map.cpp:257:53:257:54 | call to unordered_map | map.cpp:263:7:263:8 | m5 | | -| map.cpp:257:53:257:54 | call to unordered_map | map.cpp:269:7:269:8 | m5 | | -| map.cpp:257:53:257:54 | call to unordered_map | map.cpp:275:7:275:8 | m5 | | -| map.cpp:257:53:257:54 | call to unordered_map | map.cpp:281:7:281:8 | m5 | | -| map.cpp:257:53:257:54 | call to unordered_map | map.cpp:438:1:438:1 | m5 | | -| map.cpp:257:57:257:58 | call to unordered_map | map.cpp:264:7:264:8 | m6 | | -| map.cpp:257:57:257:58 | call to unordered_map | map.cpp:264:27:264:28 | m6 | | -| map.cpp:257:57:257:58 | call to unordered_map | map.cpp:270:7:270:8 | m6 | | -| map.cpp:257:57:257:58 | call to unordered_map | map.cpp:276:7:276:8 | m6 | | -| map.cpp:257:57:257:58 | call to unordered_map | map.cpp:282:7:282:8 | m6 | | -| map.cpp:257:57:257:58 | call to unordered_map | map.cpp:438:1:438:1 | m6 | | +| map.cpp:257:49:257:50 | call to unordered_map | map.cpp:259:7:259:8 | m1 | | +| map.cpp:257:49:257:50 | call to unordered_map | map.cpp:265:7:265:8 | m1 | | +| map.cpp:257:49:257:50 | call to unordered_map | map.cpp:271:7:271:8 | m1 | | +| map.cpp:257:49:257:50 | call to unordered_map | map.cpp:277:7:277:8 | m1 | | +| map.cpp:257:49:257:50 | call to unordered_map | map.cpp:298:12:298:13 | m1 | | +| map.cpp:257:49:257:50 | call to unordered_map | map.cpp:298:30:298:31 | m1 | | +| map.cpp:257:49:257:50 | call to unordered_map | map.cpp:438:1:438:1 | m1 | | +| map.cpp:257:53:257:54 | call to unordered_map | map.cpp:260:7:260:8 | m2 | | +| map.cpp:257:53:257:54 | call to unordered_map | map.cpp:266:7:266:8 | m2 | | +| map.cpp:257:53:257:54 | call to unordered_map | map.cpp:272:7:272:8 | m2 | | +| map.cpp:257:53:257:54 | call to unordered_map | map.cpp:278:7:278:8 | m2 | | +| map.cpp:257:53:257:54 | call to unordered_map | map.cpp:285:52:285:53 | m2 | | +| map.cpp:257:53:257:54 | call to unordered_map | map.cpp:286:54:286:55 | m2 | | +| map.cpp:257:53:257:54 | call to unordered_map | map.cpp:288:7:288:8 | m2 | | +| map.cpp:257:53:257:54 | call to unordered_map | map.cpp:304:12:304:13 | m2 | | +| map.cpp:257:53:257:54 | call to unordered_map | map.cpp:304:30:304:31 | m2 | | +| map.cpp:257:53:257:54 | call to unordered_map | map.cpp:438:1:438:1 | m2 | | +| map.cpp:257:57:257:58 | call to unordered_map | map.cpp:261:7:261:8 | m3 | | +| map.cpp:257:57:257:58 | call to unordered_map | map.cpp:267:7:267:8 | m3 | | +| map.cpp:257:57:257:58 | call to unordered_map | map.cpp:273:7:273:8 | m3 | | +| map.cpp:257:57:257:58 | call to unordered_map | map.cpp:279:7:279:8 | m3 | | +| map.cpp:257:57:257:58 | call to unordered_map | map.cpp:310:12:310:13 | m3 | | +| map.cpp:257:57:257:58 | call to unordered_map | map.cpp:310:30:310:31 | m3 | | +| map.cpp:257:57:257:58 | call to unordered_map | map.cpp:438:1:438:1 | m3 | | +| map.cpp:257:61:257:62 | call to unordered_map | map.cpp:262:7:262:8 | m4 | | +| map.cpp:257:61:257:62 | call to unordered_map | map.cpp:262:17:262:18 | m4 | | +| map.cpp:257:61:257:62 | call to unordered_map | map.cpp:268:7:268:8 | m4 | | +| map.cpp:257:61:257:62 | call to unordered_map | map.cpp:274:7:274:8 | m4 | | +| map.cpp:257:61:257:62 | call to unordered_map | map.cpp:280:7:280:8 | m4 | | +| map.cpp:257:61:257:62 | call to unordered_map | map.cpp:438:1:438:1 | m4 | | +| map.cpp:257:65:257:66 | call to unordered_map | map.cpp:263:7:263:8 | m5 | | +| map.cpp:257:65:257:66 | call to unordered_map | map.cpp:269:7:269:8 | m5 | | +| map.cpp:257:65:257:66 | call to unordered_map | map.cpp:275:7:275:8 | m5 | | +| map.cpp:257:65:257:66 | call to unordered_map | map.cpp:281:7:281:8 | m5 | | +| map.cpp:257:65:257:66 | call to unordered_map | map.cpp:438:1:438:1 | m5 | | +| map.cpp:257:69:257:70 | call to unordered_map | map.cpp:264:7:264:8 | m6 | | +| map.cpp:257:69:257:70 | call to unordered_map | map.cpp:264:27:264:28 | m6 | | +| map.cpp:257:69:257:70 | call to unordered_map | map.cpp:270:7:270:8 | m6 | | +| map.cpp:257:69:257:70 | call to unordered_map | map.cpp:276:7:276:8 | m6 | | +| map.cpp:257:69:257:70 | call to unordered_map | map.cpp:282:7:282:8 | m6 | | +| map.cpp:257:69:257:70 | call to unordered_map | map.cpp:438:1:438:1 | m6 | | | map.cpp:259:7:259:8 | ref arg m1 | map.cpp:265:7:265:8 | m1 | | | map.cpp:259:7:259:8 | ref arg m1 | map.cpp:271:7:271:8 | m1 | | | map.cpp:259:7:259:8 | ref arg m1 | map.cpp:277:7:277:8 | m1 | | @@ -2715,8 +2647,8 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:260:7:260:8 | ref arg m2 | map.cpp:266:7:266:8 | m2 | | | map.cpp:260:7:260:8 | ref arg m2 | map.cpp:272:7:272:8 | m2 | | | map.cpp:260:7:260:8 | ref arg m2 | map.cpp:278:7:278:8 | m2 | | -| map.cpp:260:7:260:8 | ref arg m2 | map.cpp:285:40:285:41 | m2 | | -| map.cpp:260:7:260:8 | ref arg m2 | map.cpp:286:42:286:43 | m2 | | +| map.cpp:260:7:260:8 | ref arg m2 | map.cpp:285:52:285:53 | m2 | | +| map.cpp:260:7:260:8 | ref arg m2 | map.cpp:286:54:286:55 | m2 | | | map.cpp:260:7:260:8 | ref arg m2 | map.cpp:288:7:288:8 | m2 | | | map.cpp:260:7:260:8 | ref arg m2 | map.cpp:304:12:304:13 | m2 | | | map.cpp:260:7:260:8 | ref arg m2 | map.cpp:304:30:304:31 | m2 | | @@ -2746,10 +2678,10 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:262:17:262:18 | ref arg m4 | map.cpp:280:7:280:8 | m4 | | | map.cpp:262:17:262:18 | ref arg m4 | map.cpp:438:1:438:1 | m4 | | | map.cpp:262:20:262:24 | call to begin | map.cpp:262:17:262:26 | call to iterator | TAINT | -| map.cpp:262:29:262:70 | call to pair | map.cpp:262:7:262:8 | ref arg m4 | TAINT | -| map.cpp:262:29:262:70 | call to pair | map.cpp:262:10:262:15 | call to insert | TAINT | -| map.cpp:262:29:262:70 | call to pair | map.cpp:262:29:262:70 | call to pair | TAINT | -| map.cpp:262:62:262:67 | call to source | map.cpp:262:29:262:70 | call to pair | TAINT | +| map.cpp:262:29:262:82 | call to pair | map.cpp:262:7:262:8 | ref arg m4 | TAINT | +| map.cpp:262:29:262:82 | call to pair | map.cpp:262:10:262:15 | call to insert | TAINT | +| map.cpp:262:29:262:82 | call to pair | map.cpp:262:29:262:82 | call to pair | TAINT | +| map.cpp:262:74:262:79 | call to source | map.cpp:262:29:262:82 | call to pair | TAINT | | map.cpp:263:7:263:8 | ref arg m5 | map.cpp:269:7:269:8 | m5 | | | map.cpp:263:7:263:8 | ref arg m5 | map.cpp:275:7:275:8 | m5 | | | map.cpp:263:7:263:8 | ref arg m5 | map.cpp:281:7:281:8 | m5 | | @@ -2783,8 +2715,8 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:271:7:271:8 | ref arg m1 | map.cpp:438:1:438:1 | m1 | | | map.cpp:272:7:272:8 | m2 | map.cpp:272:10:272:13 | call to find | TAINT | | map.cpp:272:7:272:8 | ref arg m2 | map.cpp:278:7:278:8 | m2 | | -| map.cpp:272:7:272:8 | ref arg m2 | map.cpp:285:40:285:41 | m2 | | -| map.cpp:272:7:272:8 | ref arg m2 | map.cpp:286:42:286:43 | m2 | | +| map.cpp:272:7:272:8 | ref arg m2 | map.cpp:285:52:285:53 | m2 | | +| map.cpp:272:7:272:8 | ref arg m2 | map.cpp:286:54:286:55 | m2 | | | map.cpp:272:7:272:8 | ref arg m2 | map.cpp:288:7:288:8 | m2 | | | map.cpp:272:7:272:8 | ref arg m2 | map.cpp:304:12:304:13 | m2 | | | map.cpp:272:7:272:8 | ref arg m2 | map.cpp:304:30:304:31 | m2 | | @@ -2808,8 +2740,8 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:277:7:277:8 | ref arg m1 | map.cpp:298:30:298:31 | m1 | | | map.cpp:277:7:277:8 | ref arg m1 | map.cpp:438:1:438:1 | m1 | | | map.cpp:278:7:278:8 | m2 | map.cpp:278:10:278:13 | call to find | TAINT | -| map.cpp:278:7:278:8 | ref arg m2 | map.cpp:285:40:285:41 | m2 | | -| map.cpp:278:7:278:8 | ref arg m2 | map.cpp:286:42:286:43 | m2 | | +| map.cpp:278:7:278:8 | ref arg m2 | map.cpp:285:52:285:53 | m2 | | +| map.cpp:278:7:278:8 | ref arg m2 | map.cpp:286:54:286:55 | m2 | | | map.cpp:278:7:278:8 | ref arg m2 | map.cpp:288:7:288:8 | m2 | | | map.cpp:278:7:278:8 | ref arg m2 | map.cpp:304:12:304:13 | m2 | | | map.cpp:278:7:278:8 | ref arg m2 | map.cpp:304:30:304:31 | m2 | | @@ -2824,18 +2756,18 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:281:7:281:8 | ref arg m5 | map.cpp:438:1:438:1 | m5 | | | map.cpp:282:7:282:8 | m6 | map.cpp:282:10:282:13 | call to find | TAINT | | map.cpp:282:7:282:8 | ref arg m6 | map.cpp:438:1:438:1 | m6 | | -| map.cpp:285:40:285:41 | m2 | map.cpp:285:40:285:42 | call to unordered_map | | -| map.cpp:285:40:285:42 | call to unordered_map | map.cpp:289:7:289:8 | m7 | | -| map.cpp:285:40:285:42 | call to unordered_map | map.cpp:292:7:292:8 | m7 | | -| map.cpp:285:40:285:42 | call to unordered_map | map.cpp:438:1:438:1 | m7 | | -| map.cpp:286:41:286:43 | call to unordered_map | map.cpp:290:7:290:8 | m8 | | -| map.cpp:286:41:286:43 | call to unordered_map | map.cpp:293:7:293:8 | m8 | | -| map.cpp:286:41:286:43 | call to unordered_map | map.cpp:438:1:438:1 | m8 | | -| map.cpp:286:42:286:43 | m2 | map.cpp:286:41:286:43 | call to unordered_map | | -| map.cpp:287:37:287:38 | call to unordered_map | map.cpp:288:2:288:3 | m9 | | -| map.cpp:287:37:287:38 | call to unordered_map | map.cpp:291:7:291:8 | m9 | | -| map.cpp:287:37:287:38 | call to unordered_map | map.cpp:294:7:294:8 | m9 | | -| map.cpp:287:37:287:38 | call to unordered_map | map.cpp:438:1:438:1 | m9 | | +| map.cpp:285:52:285:53 | m2 | map.cpp:285:52:285:54 | call to unordered_map | | +| map.cpp:285:52:285:54 | call to unordered_map | map.cpp:289:7:289:8 | m7 | | +| map.cpp:285:52:285:54 | call to unordered_map | map.cpp:292:7:292:8 | m7 | | +| map.cpp:285:52:285:54 | call to unordered_map | map.cpp:438:1:438:1 | m7 | | +| map.cpp:286:53:286:55 | call to unordered_map | map.cpp:290:7:290:8 | m8 | | +| map.cpp:286:53:286:55 | call to unordered_map | map.cpp:293:7:293:8 | m8 | | +| map.cpp:286:53:286:55 | call to unordered_map | map.cpp:438:1:438:1 | m8 | | +| map.cpp:286:54:286:55 | m2 | map.cpp:286:53:286:55 | call to unordered_map | | +| map.cpp:287:49:287:50 | call to unordered_map | map.cpp:288:2:288:3 | m9 | | +| map.cpp:287:49:287:50 | call to unordered_map | map.cpp:291:7:291:8 | m9 | | +| map.cpp:287:49:287:50 | call to unordered_map | map.cpp:294:7:294:8 | m9 | | +| map.cpp:287:49:287:50 | call to unordered_map | map.cpp:438:1:438:1 | m9 | | | map.cpp:288:2:288:3 | ref arg m9 | map.cpp:291:7:291:8 | m9 | | | map.cpp:288:2:288:3 | ref arg m9 | map.cpp:294:7:294:8 | m9 | | | map.cpp:288:2:288:3 | ref arg m9 | map.cpp:438:1:438:1 | m9 | | @@ -2868,7 +2800,6 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:298:40:298:41 | ref arg i1 | map.cpp:300:9:300:10 | i1 | | | map.cpp:298:40:298:41 | ref arg i1 | map.cpp:301:8:301:9 | i1 | | | map.cpp:298:40:298:41 | ref arg i1 | map.cpp:302:8:302:9 | i1 | | -| map.cpp:300:8:300:8 | call to operator* | map.cpp:300:8:300:10 | call to pair | TAINT | | map.cpp:300:9:300:10 | i1 | map.cpp:300:8:300:8 | call to operator* | TAINT | | map.cpp:300:9:300:10 | ref arg i1 | map.cpp:298:24:298:25 | i1 | | | map.cpp:300:9:300:10 | ref arg i1 | map.cpp:298:40:298:41 | i1 | | @@ -2905,7 +2836,6 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:304:40:304:41 | ref arg i2 | map.cpp:306:9:306:10 | i2 | | | map.cpp:304:40:304:41 | ref arg i2 | map.cpp:307:8:307:9 | i2 | | | map.cpp:304:40:304:41 | ref arg i2 | map.cpp:308:8:308:9 | i2 | | -| map.cpp:306:8:306:8 | call to operator* | map.cpp:306:8:306:10 | call to pair | TAINT | | map.cpp:306:9:306:10 | i2 | map.cpp:306:8:306:8 | call to operator* | TAINT | | map.cpp:306:9:306:10 | ref arg i2 | map.cpp:304:24:304:25 | i2 | | | map.cpp:306:9:306:10 | ref arg i2 | map.cpp:304:40:304:41 | i2 | | @@ -2942,7 +2872,6 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:310:40:310:41 | ref arg i3 | map.cpp:312:9:312:10 | i3 | | | map.cpp:310:40:310:41 | ref arg i3 | map.cpp:313:8:313:9 | i3 | | | map.cpp:310:40:310:41 | ref arg i3 | map.cpp:314:8:314:9 | i3 | | -| map.cpp:312:8:312:8 | call to operator* | map.cpp:312:8:312:10 | call to pair | TAINT | | map.cpp:312:9:312:10 | i3 | map.cpp:312:8:312:8 | call to operator* | TAINT | | map.cpp:312:9:312:10 | ref arg i3 | map.cpp:310:24:310:25 | i3 | | | map.cpp:312:9:312:10 | ref arg i3 | map.cpp:310:40:310:41 | i3 | | @@ -2961,18 +2890,18 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:314:8:314:9 | ref arg i3 | map.cpp:312:9:312:10 | i3 | | | map.cpp:314:8:314:9 | ref arg i3 | map.cpp:313:8:313:9 | i3 | | | map.cpp:314:8:314:9 | ref arg i3 | map.cpp:314:8:314:9 | i3 | | -| map.cpp:318:37:318:39 | call to unordered_map | map.cpp:319:7:319:9 | m10 | | -| map.cpp:318:37:318:39 | call to unordered_map | map.cpp:323:7:323:9 | m10 | | -| map.cpp:318:37:318:39 | call to unordered_map | map.cpp:438:1:438:1 | m10 | | -| map.cpp:318:42:318:44 | call to unordered_map | map.cpp:320:7:320:9 | m11 | | -| map.cpp:318:42:318:44 | call to unordered_map | map.cpp:324:7:324:9 | m11 | | -| map.cpp:318:42:318:44 | call to unordered_map | map.cpp:438:1:438:1 | m11 | | -| map.cpp:318:47:318:49 | call to unordered_map | map.cpp:321:7:321:9 | m12 | | -| map.cpp:318:47:318:49 | call to unordered_map | map.cpp:325:7:325:9 | m12 | | -| map.cpp:318:47:318:49 | call to unordered_map | map.cpp:438:1:438:1 | m12 | | -| map.cpp:318:52:318:54 | call to unordered_map | map.cpp:322:7:322:9 | m13 | | -| map.cpp:318:52:318:54 | call to unordered_map | map.cpp:326:7:326:9 | m13 | | -| map.cpp:318:52:318:54 | call to unordered_map | map.cpp:438:1:438:1 | m13 | | +| map.cpp:318:49:318:51 | call to unordered_map | map.cpp:319:7:319:9 | m10 | | +| map.cpp:318:49:318:51 | call to unordered_map | map.cpp:323:7:323:9 | m10 | | +| map.cpp:318:49:318:51 | call to unordered_map | map.cpp:438:1:438:1 | m10 | | +| map.cpp:318:54:318:56 | call to unordered_map | map.cpp:320:7:320:9 | m11 | | +| map.cpp:318:54:318:56 | call to unordered_map | map.cpp:324:7:324:9 | m11 | | +| map.cpp:318:54:318:56 | call to unordered_map | map.cpp:438:1:438:1 | m11 | | +| map.cpp:318:59:318:61 | call to unordered_map | map.cpp:321:7:321:9 | m12 | | +| map.cpp:318:59:318:61 | call to unordered_map | map.cpp:325:7:325:9 | m12 | | +| map.cpp:318:59:318:61 | call to unordered_map | map.cpp:438:1:438:1 | m12 | | +| map.cpp:318:64:318:66 | call to unordered_map | map.cpp:322:7:322:9 | m13 | | +| map.cpp:318:64:318:66 | call to unordered_map | map.cpp:326:7:326:9 | m13 | | +| map.cpp:318:64:318:66 | call to unordered_map | map.cpp:438:1:438:1 | m13 | | | map.cpp:319:7:319:9 | m10 | map.cpp:319:10:319:10 | call to operator[] | TAINT | | map.cpp:319:7:319:9 | ref arg m10 | map.cpp:323:7:323:9 | m10 | | | map.cpp:319:7:319:9 | ref arg m10 | map.cpp:438:1:438:1 | m10 | | @@ -3005,14 +2934,14 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:325:7:325:9 | ref arg m12 | map.cpp:438:1:438:1 | m12 | | | map.cpp:326:7:326:9 | m13 | map.cpp:326:10:326:10 | call to operator[] | TAINT | | map.cpp:326:7:326:9 | ref arg m13 | map.cpp:438:1:438:1 | m13 | | -| map.cpp:329:37:329:39 | call to unordered_map | map.cpp:330:2:330:4 | m14 | | -| map.cpp:329:37:329:39 | call to unordered_map | map.cpp:331:2:331:4 | m14 | | -| map.cpp:329:37:329:39 | call to unordered_map | map.cpp:332:2:332:4 | m14 | | -| map.cpp:329:37:329:39 | call to unordered_map | map.cpp:333:2:333:4 | m14 | | -| map.cpp:329:37:329:39 | call to unordered_map | map.cpp:334:7:334:9 | m14 | | -| map.cpp:329:37:329:39 | call to unordered_map | map.cpp:335:7:335:9 | m14 | | -| map.cpp:329:37:329:39 | call to unordered_map | map.cpp:336:7:336:9 | m14 | | -| map.cpp:329:37:329:39 | call to unordered_map | map.cpp:438:1:438:1 | m14 | | +| map.cpp:329:49:329:51 | call to unordered_map | map.cpp:330:2:330:4 | m14 | | +| map.cpp:329:49:329:51 | call to unordered_map | map.cpp:331:2:331:4 | m14 | | +| map.cpp:329:49:329:51 | call to unordered_map | map.cpp:332:2:332:4 | m14 | | +| map.cpp:329:49:329:51 | call to unordered_map | map.cpp:333:2:333:4 | m14 | | +| map.cpp:329:49:329:51 | call to unordered_map | map.cpp:334:7:334:9 | m14 | | +| map.cpp:329:49:329:51 | call to unordered_map | map.cpp:335:7:335:9 | m14 | | +| map.cpp:329:49:329:51 | call to unordered_map | map.cpp:336:7:336:9 | m14 | | +| map.cpp:329:49:329:51 | call to unordered_map | map.cpp:438:1:438:1 | m14 | | | map.cpp:330:2:330:4 | ref arg m14 | map.cpp:331:2:331:4 | m14 | | | map.cpp:330:2:330:4 | ref arg m14 | map.cpp:332:2:332:4 | m14 | | | map.cpp:330:2:330:4 | ref arg m14 | map.cpp:333:2:333:4 | m14 | | @@ -3059,40 +2988,40 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:336:7:336:9 | m14 | map.cpp:336:11:336:21 | call to equal_range | TAINT | | map.cpp:336:7:336:9 | ref arg m14 | map.cpp:438:1:438:1 | m14 | | | map.cpp:336:28:336:33 | second | map.cpp:336:7:336:33 | call to iterator | | -| map.cpp:339:37:339:39 | call to unordered_map | map.cpp:340:2:340:4 | m15 | | -| map.cpp:339:37:339:39 | call to unordered_map | map.cpp:342:7:342:9 | m15 | | -| map.cpp:339:37:339:39 | call to unordered_map | map.cpp:346:2:346:4 | m15 | | -| map.cpp:339:37:339:39 | call to unordered_map | map.cpp:348:7:348:9 | m15 | | -| map.cpp:339:37:339:39 | call to unordered_map | map.cpp:438:1:438:1 | m15 | | -| map.cpp:339:42:339:44 | call to unordered_map | map.cpp:343:7:343:9 | m16 | | -| map.cpp:339:42:339:44 | call to unordered_map | map.cpp:346:11:346:13 | m16 | | -| map.cpp:339:42:339:44 | call to unordered_map | map.cpp:349:7:349:9 | m16 | | -| map.cpp:339:42:339:44 | call to unordered_map | map.cpp:438:1:438:1 | m16 | | -| map.cpp:339:47:339:49 | call to unordered_map | map.cpp:344:7:344:9 | m17 | | -| map.cpp:339:47:339:49 | call to unordered_map | map.cpp:347:2:347:4 | m17 | | -| map.cpp:339:47:339:49 | call to unordered_map | map.cpp:350:7:350:9 | m17 | | -| map.cpp:339:47:339:49 | call to unordered_map | map.cpp:438:1:438:1 | m17 | | -| map.cpp:339:52:339:54 | call to unordered_map | map.cpp:341:2:341:4 | m18 | | -| map.cpp:339:52:339:54 | call to unordered_map | map.cpp:345:7:345:9 | m18 | | -| map.cpp:339:52:339:54 | call to unordered_map | map.cpp:347:11:347:13 | m18 | | -| map.cpp:339:52:339:54 | call to unordered_map | map.cpp:351:7:351:9 | m18 | | -| map.cpp:339:52:339:54 | call to unordered_map | map.cpp:438:1:438:1 | m18 | | +| map.cpp:339:49:339:51 | call to unordered_map | map.cpp:340:2:340:4 | m15 | | +| map.cpp:339:49:339:51 | call to unordered_map | map.cpp:342:7:342:9 | m15 | | +| map.cpp:339:49:339:51 | call to unordered_map | map.cpp:346:2:346:4 | m15 | | +| map.cpp:339:49:339:51 | call to unordered_map | map.cpp:348:7:348:9 | m15 | | +| map.cpp:339:49:339:51 | call to unordered_map | map.cpp:438:1:438:1 | m15 | | +| map.cpp:339:54:339:56 | call to unordered_map | map.cpp:343:7:343:9 | m16 | | +| map.cpp:339:54:339:56 | call to unordered_map | map.cpp:346:11:346:13 | m16 | | +| map.cpp:339:54:339:56 | call to unordered_map | map.cpp:349:7:349:9 | m16 | | +| map.cpp:339:54:339:56 | call to unordered_map | map.cpp:438:1:438:1 | m16 | | +| map.cpp:339:59:339:61 | call to unordered_map | map.cpp:344:7:344:9 | m17 | | +| map.cpp:339:59:339:61 | call to unordered_map | map.cpp:347:2:347:4 | m17 | | +| map.cpp:339:59:339:61 | call to unordered_map | map.cpp:350:7:350:9 | m17 | | +| map.cpp:339:59:339:61 | call to unordered_map | map.cpp:438:1:438:1 | m17 | | +| map.cpp:339:64:339:66 | call to unordered_map | map.cpp:341:2:341:4 | m18 | | +| map.cpp:339:64:339:66 | call to unordered_map | map.cpp:345:7:345:9 | m18 | | +| map.cpp:339:64:339:66 | call to unordered_map | map.cpp:347:11:347:13 | m18 | | +| map.cpp:339:64:339:66 | call to unordered_map | map.cpp:351:7:351:9 | m18 | | +| map.cpp:339:64:339:66 | call to unordered_map | map.cpp:438:1:438:1 | m18 | | | map.cpp:340:2:340:4 | ref arg m15 | map.cpp:342:7:342:9 | m15 | | | map.cpp:340:2:340:4 | ref arg m15 | map.cpp:346:2:346:4 | m15 | | | map.cpp:340:2:340:4 | ref arg m15 | map.cpp:348:7:348:9 | m15 | | | map.cpp:340:2:340:4 | ref arg m15 | map.cpp:438:1:438:1 | m15 | | -| map.cpp:340:13:340:57 | call to pair | map.cpp:340:2:340:4 | ref arg m15 | TAINT | -| map.cpp:340:13:340:57 | call to pair | map.cpp:340:6:340:11 | call to insert | TAINT | -| map.cpp:340:13:340:57 | call to pair | map.cpp:340:13:340:57 | call to pair | TAINT | -| map.cpp:340:49:340:54 | call to source | map.cpp:340:13:340:57 | call to pair | TAINT | +| map.cpp:340:13:340:69 | call to pair | map.cpp:340:2:340:4 | ref arg m15 | TAINT | +| map.cpp:340:13:340:69 | call to pair | map.cpp:340:6:340:11 | call to insert | TAINT | +| map.cpp:340:13:340:69 | call to pair | map.cpp:340:13:340:69 | call to pair | TAINT | +| map.cpp:340:61:340:66 | call to source | map.cpp:340:13:340:69 | call to pair | TAINT | | map.cpp:341:2:341:4 | ref arg m18 | map.cpp:345:7:345:9 | m18 | | | map.cpp:341:2:341:4 | ref arg m18 | map.cpp:347:11:347:13 | m18 | | | map.cpp:341:2:341:4 | ref arg m18 | map.cpp:351:7:351:9 | m18 | | | map.cpp:341:2:341:4 | ref arg m18 | map.cpp:438:1:438:1 | m18 | | -| map.cpp:341:13:341:57 | call to pair | map.cpp:341:2:341:4 | ref arg m18 | TAINT | -| map.cpp:341:13:341:57 | call to pair | map.cpp:341:6:341:11 | call to insert | TAINT | -| map.cpp:341:13:341:57 | call to pair | map.cpp:341:13:341:57 | call to pair | TAINT | -| map.cpp:341:49:341:54 | call to source | map.cpp:341:13:341:57 | call to pair | TAINT | +| map.cpp:341:13:341:69 | call to pair | map.cpp:341:2:341:4 | ref arg m18 | TAINT | +| map.cpp:341:13:341:69 | call to pair | map.cpp:341:6:341:11 | call to insert | TAINT | +| map.cpp:341:13:341:69 | call to pair | map.cpp:341:13:341:69 | call to pair | TAINT | +| map.cpp:341:61:341:66 | call to source | map.cpp:341:13:341:69 | call to pair | TAINT | | map.cpp:342:7:342:9 | m15 | map.cpp:342:7:342:9 | call to unordered_map | | | map.cpp:343:7:343:9 | m16 | map.cpp:343:7:343:9 | call to unordered_map | | | map.cpp:344:7:344:9 | m17 | map.cpp:344:7:344:9 | call to unordered_map | | @@ -3109,58 +3038,58 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:349:7:349:9 | m16 | map.cpp:349:7:349:9 | call to unordered_map | | | map.cpp:350:7:350:9 | m17 | map.cpp:350:7:350:9 | call to unordered_map | | | map.cpp:351:7:351:9 | m18 | map.cpp:351:7:351:9 | call to unordered_map | | -| map.cpp:354:37:354:39 | call to unordered_map | map.cpp:355:2:355:4 | m19 | | -| map.cpp:354:37:354:39 | call to unordered_map | map.cpp:359:7:359:9 | m19 | | -| map.cpp:354:37:354:39 | call to unordered_map | map.cpp:363:2:363:4 | m19 | | -| map.cpp:354:37:354:39 | call to unordered_map | map.cpp:365:7:365:9 | m19 | | -| map.cpp:354:37:354:39 | call to unordered_map | map.cpp:438:1:438:1 | m19 | | -| map.cpp:354:42:354:44 | call to unordered_map | map.cpp:356:2:356:4 | m20 | | -| map.cpp:354:42:354:44 | call to unordered_map | map.cpp:360:7:360:9 | m20 | | -| map.cpp:354:42:354:44 | call to unordered_map | map.cpp:363:12:363:14 | m20 | | -| map.cpp:354:42:354:44 | call to unordered_map | map.cpp:366:7:366:9 | m20 | | -| map.cpp:354:42:354:44 | call to unordered_map | map.cpp:438:1:438:1 | m20 | | -| map.cpp:354:47:354:49 | call to unordered_map | map.cpp:357:2:357:4 | m21 | | -| map.cpp:354:47:354:49 | call to unordered_map | map.cpp:361:7:361:9 | m21 | | -| map.cpp:354:47:354:49 | call to unordered_map | map.cpp:364:2:364:4 | m21 | | -| map.cpp:354:47:354:49 | call to unordered_map | map.cpp:367:7:367:9 | m21 | | -| map.cpp:354:47:354:49 | call to unordered_map | map.cpp:438:1:438:1 | m21 | | -| map.cpp:354:52:354:54 | call to unordered_map | map.cpp:358:2:358:4 | m22 | | -| map.cpp:354:52:354:54 | call to unordered_map | map.cpp:362:7:362:9 | m22 | | -| map.cpp:354:52:354:54 | call to unordered_map | map.cpp:364:12:364:14 | m22 | | -| map.cpp:354:52:354:54 | call to unordered_map | map.cpp:368:7:368:9 | m22 | | -| map.cpp:354:52:354:54 | call to unordered_map | map.cpp:438:1:438:1 | m22 | | +| map.cpp:354:49:354:51 | call to unordered_map | map.cpp:355:2:355:4 | m19 | | +| map.cpp:354:49:354:51 | call to unordered_map | map.cpp:359:7:359:9 | m19 | | +| map.cpp:354:49:354:51 | call to unordered_map | map.cpp:363:2:363:4 | m19 | | +| map.cpp:354:49:354:51 | call to unordered_map | map.cpp:365:7:365:9 | m19 | | +| map.cpp:354:49:354:51 | call to unordered_map | map.cpp:438:1:438:1 | m19 | | +| map.cpp:354:54:354:56 | call to unordered_map | map.cpp:356:2:356:4 | m20 | | +| map.cpp:354:54:354:56 | call to unordered_map | map.cpp:360:7:360:9 | m20 | | +| map.cpp:354:54:354:56 | call to unordered_map | map.cpp:363:12:363:14 | m20 | | +| map.cpp:354:54:354:56 | call to unordered_map | map.cpp:366:7:366:9 | m20 | | +| map.cpp:354:54:354:56 | call to unordered_map | map.cpp:438:1:438:1 | m20 | | +| map.cpp:354:59:354:61 | call to unordered_map | map.cpp:357:2:357:4 | m21 | | +| map.cpp:354:59:354:61 | call to unordered_map | map.cpp:361:7:361:9 | m21 | | +| map.cpp:354:59:354:61 | call to unordered_map | map.cpp:364:2:364:4 | m21 | | +| map.cpp:354:59:354:61 | call to unordered_map | map.cpp:367:7:367:9 | m21 | | +| map.cpp:354:59:354:61 | call to unordered_map | map.cpp:438:1:438:1 | m21 | | +| map.cpp:354:64:354:66 | call to unordered_map | map.cpp:358:2:358:4 | m22 | | +| map.cpp:354:64:354:66 | call to unordered_map | map.cpp:362:7:362:9 | m22 | | +| map.cpp:354:64:354:66 | call to unordered_map | map.cpp:364:12:364:14 | m22 | | +| map.cpp:354:64:354:66 | call to unordered_map | map.cpp:368:7:368:9 | m22 | | +| map.cpp:354:64:354:66 | call to unordered_map | map.cpp:438:1:438:1 | m22 | | | map.cpp:355:2:355:4 | ref arg m19 | map.cpp:359:7:359:9 | m19 | | | map.cpp:355:2:355:4 | ref arg m19 | map.cpp:363:2:363:4 | m19 | | | map.cpp:355:2:355:4 | ref arg m19 | map.cpp:365:7:365:9 | m19 | | | map.cpp:355:2:355:4 | ref arg m19 | map.cpp:438:1:438:1 | m19 | | -| map.cpp:355:13:355:57 | call to pair | map.cpp:355:2:355:4 | ref arg m19 | TAINT | -| map.cpp:355:13:355:57 | call to pair | map.cpp:355:6:355:11 | call to insert | TAINT | -| map.cpp:355:13:355:57 | call to pair | map.cpp:355:13:355:57 | call to pair | TAINT | -| map.cpp:355:49:355:54 | call to source | map.cpp:355:13:355:57 | call to pair | TAINT | +| map.cpp:355:13:355:69 | call to pair | map.cpp:355:2:355:4 | ref arg m19 | TAINT | +| map.cpp:355:13:355:69 | call to pair | map.cpp:355:6:355:11 | call to insert | TAINT | +| map.cpp:355:13:355:69 | call to pair | map.cpp:355:13:355:69 | call to pair | TAINT | +| map.cpp:355:61:355:66 | call to source | map.cpp:355:13:355:69 | call to pair | TAINT | | map.cpp:356:2:356:4 | ref arg m20 | map.cpp:360:7:360:9 | m20 | | | map.cpp:356:2:356:4 | ref arg m20 | map.cpp:363:12:363:14 | m20 | | | map.cpp:356:2:356:4 | ref arg m20 | map.cpp:366:7:366:9 | m20 | | | map.cpp:356:2:356:4 | ref arg m20 | map.cpp:438:1:438:1 | m20 | | -| map.cpp:356:13:356:51 | call to pair | map.cpp:356:2:356:4 | ref arg m20 | TAINT | -| map.cpp:356:13:356:51 | call to pair | map.cpp:356:6:356:11 | call to insert | TAINT | -| map.cpp:356:13:356:51 | call to pair | map.cpp:356:13:356:51 | call to pair | TAINT | -| map.cpp:356:46:356:50 | def | map.cpp:356:13:356:51 | call to pair | TAINT | +| map.cpp:356:13:356:63 | call to pair | map.cpp:356:2:356:4 | ref arg m20 | TAINT | +| map.cpp:356:13:356:63 | call to pair | map.cpp:356:6:356:11 | call to insert | TAINT | +| map.cpp:356:13:356:63 | call to pair | map.cpp:356:13:356:63 | call to pair | TAINT | +| map.cpp:356:58:356:62 | def | map.cpp:356:13:356:63 | call to pair | TAINT | | map.cpp:357:2:357:4 | ref arg m21 | map.cpp:361:7:361:9 | m21 | | | map.cpp:357:2:357:4 | ref arg m21 | map.cpp:364:2:364:4 | m21 | | | map.cpp:357:2:357:4 | ref arg m21 | map.cpp:367:7:367:9 | m21 | | | map.cpp:357:2:357:4 | ref arg m21 | map.cpp:438:1:438:1 | m21 | | -| map.cpp:357:13:357:51 | call to pair | map.cpp:357:2:357:4 | ref arg m21 | TAINT | -| map.cpp:357:13:357:51 | call to pair | map.cpp:357:6:357:11 | call to insert | TAINT | -| map.cpp:357:13:357:51 | call to pair | map.cpp:357:13:357:51 | call to pair | TAINT | -| map.cpp:357:46:357:50 | def | map.cpp:357:13:357:51 | call to pair | TAINT | +| map.cpp:357:13:357:63 | call to pair | map.cpp:357:2:357:4 | ref arg m21 | TAINT | +| map.cpp:357:13:357:63 | call to pair | map.cpp:357:6:357:11 | call to insert | TAINT | +| map.cpp:357:13:357:63 | call to pair | map.cpp:357:13:357:63 | call to pair | TAINT | +| map.cpp:357:58:357:62 | def | map.cpp:357:13:357:63 | call to pair | TAINT | | map.cpp:358:2:358:4 | ref arg m22 | map.cpp:362:7:362:9 | m22 | | | map.cpp:358:2:358:4 | ref arg m22 | map.cpp:364:12:364:14 | m22 | | | map.cpp:358:2:358:4 | ref arg m22 | map.cpp:368:7:368:9 | m22 | | | map.cpp:358:2:358:4 | ref arg m22 | map.cpp:438:1:438:1 | m22 | | -| map.cpp:358:13:358:57 | call to pair | map.cpp:358:2:358:4 | ref arg m22 | TAINT | -| map.cpp:358:13:358:57 | call to pair | map.cpp:358:6:358:11 | call to insert | TAINT | -| map.cpp:358:13:358:57 | call to pair | map.cpp:358:13:358:57 | call to pair | TAINT | -| map.cpp:358:49:358:54 | call to source | map.cpp:358:13:358:57 | call to pair | TAINT | +| map.cpp:358:13:358:69 | call to pair | map.cpp:358:2:358:4 | ref arg m22 | TAINT | +| map.cpp:358:13:358:69 | call to pair | map.cpp:358:6:358:11 | call to insert | TAINT | +| map.cpp:358:13:358:69 | call to pair | map.cpp:358:13:358:69 | call to pair | TAINT | +| map.cpp:358:61:358:66 | call to source | map.cpp:358:13:358:69 | call to pair | TAINT | | map.cpp:359:7:359:9 | m19 | map.cpp:359:7:359:9 | call to unordered_map | | | map.cpp:360:7:360:9 | m20 | map.cpp:360:7:360:9 | call to unordered_map | | | map.cpp:361:7:361:9 | m21 | map.cpp:361:7:361:9 | call to unordered_map | | @@ -3179,15 +3108,15 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:366:7:366:9 | m20 | map.cpp:366:7:366:9 | call to unordered_map | | | map.cpp:367:7:367:9 | m21 | map.cpp:367:7:367:9 | call to unordered_map | | | map.cpp:368:7:368:9 | m22 | map.cpp:368:7:368:9 | call to unordered_map | | -| map.cpp:371:37:371:39 | call to unordered_map | map.cpp:372:2:372:4 | m23 | | -| map.cpp:371:37:371:39 | call to unordered_map | map.cpp:373:2:373:4 | m23 | | -| map.cpp:371:37:371:39 | call to unordered_map | map.cpp:374:7:374:9 | m23 | | -| map.cpp:371:37:371:39 | call to unordered_map | map.cpp:375:7:375:9 | m23 | | -| map.cpp:371:37:371:39 | call to unordered_map | map.cpp:375:17:375:19 | m23 | | -| map.cpp:371:37:371:39 | call to unordered_map | map.cpp:376:7:376:9 | m23 | | -| map.cpp:371:37:371:39 | call to unordered_map | map.cpp:377:2:377:4 | m23 | | -| map.cpp:371:37:371:39 | call to unordered_map | map.cpp:378:7:378:9 | m23 | | -| map.cpp:371:37:371:39 | call to unordered_map | map.cpp:438:1:438:1 | m23 | | +| map.cpp:371:49:371:51 | call to unordered_map | map.cpp:372:2:372:4 | m23 | | +| map.cpp:371:49:371:51 | call to unordered_map | map.cpp:373:2:373:4 | m23 | | +| map.cpp:371:49:371:51 | call to unordered_map | map.cpp:374:7:374:9 | m23 | | +| map.cpp:371:49:371:51 | call to unordered_map | map.cpp:375:7:375:9 | m23 | | +| map.cpp:371:49:371:51 | call to unordered_map | map.cpp:375:17:375:19 | m23 | | +| map.cpp:371:49:371:51 | call to unordered_map | map.cpp:376:7:376:9 | m23 | | +| map.cpp:371:49:371:51 | call to unordered_map | map.cpp:377:2:377:4 | m23 | | +| map.cpp:371:49:371:51 | call to unordered_map | map.cpp:378:7:378:9 | m23 | | +| map.cpp:371:49:371:51 | call to unordered_map | map.cpp:438:1:438:1 | m23 | | | map.cpp:372:2:372:4 | ref arg m23 | map.cpp:373:2:373:4 | m23 | | | map.cpp:372:2:372:4 | ref arg m23 | map.cpp:374:7:374:9 | m23 | | | map.cpp:372:2:372:4 | ref arg m23 | map.cpp:375:7:375:9 | m23 | | @@ -3196,10 +3125,10 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:372:2:372:4 | ref arg m23 | map.cpp:377:2:377:4 | m23 | | | map.cpp:372:2:372:4 | ref arg m23 | map.cpp:378:7:378:9 | m23 | | | map.cpp:372:2:372:4 | ref arg m23 | map.cpp:438:1:438:1 | m23 | | -| map.cpp:372:13:372:57 | call to pair | map.cpp:372:2:372:4 | ref arg m23 | TAINT | -| map.cpp:372:13:372:57 | call to pair | map.cpp:372:6:372:11 | call to insert | TAINT | -| map.cpp:372:13:372:57 | call to pair | map.cpp:372:13:372:57 | call to pair | TAINT | -| map.cpp:372:49:372:54 | call to source | map.cpp:372:13:372:57 | call to pair | TAINT | +| map.cpp:372:13:372:69 | call to pair | map.cpp:372:2:372:4 | ref arg m23 | TAINT | +| map.cpp:372:13:372:69 | call to pair | map.cpp:372:6:372:11 | call to insert | TAINT | +| map.cpp:372:13:372:69 | call to pair | map.cpp:372:13:372:69 | call to pair | TAINT | +| map.cpp:372:61:372:66 | call to source | map.cpp:372:13:372:69 | call to pair | TAINT | | map.cpp:373:2:373:4 | ref arg m23 | map.cpp:374:7:374:9 | m23 | | | map.cpp:373:2:373:4 | ref arg m23 | map.cpp:375:7:375:9 | m23 | | | map.cpp:373:2:373:4 | ref arg m23 | map.cpp:375:17:375:19 | m23 | | @@ -3207,10 +3136,10 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:373:2:373:4 | ref arg m23 | map.cpp:377:2:377:4 | m23 | | | map.cpp:373:2:373:4 | ref arg m23 | map.cpp:378:7:378:9 | m23 | | | map.cpp:373:2:373:4 | ref arg m23 | map.cpp:438:1:438:1 | m23 | | -| map.cpp:373:13:373:57 | call to pair | map.cpp:373:2:373:4 | ref arg m23 | TAINT | -| map.cpp:373:13:373:57 | call to pair | map.cpp:373:6:373:11 | call to insert | TAINT | -| map.cpp:373:13:373:57 | call to pair | map.cpp:373:13:373:57 | call to pair | TAINT | -| map.cpp:373:49:373:54 | call to source | map.cpp:373:13:373:57 | call to pair | TAINT | +| map.cpp:373:13:373:69 | call to pair | map.cpp:373:2:373:4 | ref arg m23 | TAINT | +| map.cpp:373:13:373:69 | call to pair | map.cpp:373:6:373:11 | call to insert | TAINT | +| map.cpp:373:13:373:69 | call to pair | map.cpp:373:13:373:69 | call to pair | TAINT | +| map.cpp:373:61:373:66 | call to source | map.cpp:373:13:373:69 | call to pair | TAINT | | map.cpp:374:7:374:9 | m23 | map.cpp:374:7:374:9 | call to unordered_map | | | map.cpp:375:7:375:9 | m23 | map.cpp:375:11:375:15 | call to erase | TAINT | | map.cpp:375:7:375:9 | ref arg m23 | map.cpp:376:7:376:9 | m23 | | @@ -3227,18 +3156,18 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:377:2:377:4 | ref arg m23 | map.cpp:378:7:378:9 | m23 | | | map.cpp:377:2:377:4 | ref arg m23 | map.cpp:438:1:438:1 | m23 | | | map.cpp:378:7:378:9 | m23 | map.cpp:378:7:378:9 | call to unordered_map | | -| map.cpp:381:37:381:39 | call to unordered_map | map.cpp:382:7:382:9 | m24 | | -| map.cpp:381:37:381:39 | call to unordered_map | map.cpp:383:7:383:9 | m24 | | -| map.cpp:381:37:381:39 | call to unordered_map | map.cpp:384:7:384:9 | m24 | | -| map.cpp:381:37:381:39 | call to unordered_map | map.cpp:385:7:385:9 | m24 | | -| map.cpp:381:37:381:39 | call to unordered_map | map.cpp:438:1:438:1 | m24 | | -| map.cpp:381:42:381:44 | call to unordered_map | map.cpp:386:7:386:9 | m25 | | -| map.cpp:381:42:381:44 | call to unordered_map | map.cpp:386:24:386:26 | m25 | | -| map.cpp:381:42:381:44 | call to unordered_map | map.cpp:387:7:387:9 | m25 | | -| map.cpp:381:42:381:44 | call to unordered_map | map.cpp:388:7:388:9 | m25 | | -| map.cpp:381:42:381:44 | call to unordered_map | map.cpp:388:24:388:26 | m25 | | -| map.cpp:381:42:381:44 | call to unordered_map | map.cpp:389:7:389:9 | m25 | | -| map.cpp:381:42:381:44 | call to unordered_map | map.cpp:438:1:438:1 | m25 | | +| map.cpp:381:49:381:51 | call to unordered_map | map.cpp:382:7:382:9 | m24 | | +| map.cpp:381:49:381:51 | call to unordered_map | map.cpp:383:7:383:9 | m24 | | +| map.cpp:381:49:381:51 | call to unordered_map | map.cpp:384:7:384:9 | m24 | | +| map.cpp:381:49:381:51 | call to unordered_map | map.cpp:385:7:385:9 | m24 | | +| map.cpp:381:49:381:51 | call to unordered_map | map.cpp:438:1:438:1 | m24 | | +| map.cpp:381:54:381:56 | call to unordered_map | map.cpp:386:7:386:9 | m25 | | +| map.cpp:381:54:381:56 | call to unordered_map | map.cpp:386:24:386:26 | m25 | | +| map.cpp:381:54:381:56 | call to unordered_map | map.cpp:387:7:387:9 | m25 | | +| map.cpp:381:54:381:56 | call to unordered_map | map.cpp:388:7:388:9 | m25 | | +| map.cpp:381:54:381:56 | call to unordered_map | map.cpp:388:24:388:26 | m25 | | +| map.cpp:381:54:381:56 | call to unordered_map | map.cpp:389:7:389:9 | m25 | | +| map.cpp:381:54:381:56 | call to unordered_map | map.cpp:438:1:438:1 | m25 | | | map.cpp:382:7:382:9 | m24 | map.cpp:382:11:382:17 | call to emplace | TAINT | | map.cpp:382:7:382:9 | ref arg m24 | map.cpp:383:7:383:9 | m24 | | | map.cpp:382:7:382:9 | ref arg m24 | map.cpp:384:7:384:9 | m24 | | @@ -3283,27 +3212,27 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:388:44:388:49 | call to source | map.cpp:388:7:388:9 | ref arg m25 | TAINT | | map.cpp:388:44:388:49 | call to source | map.cpp:388:11:388:22 | call to emplace_hint | TAINT | | map.cpp:389:7:389:9 | m25 | map.cpp:389:7:389:9 | call to unordered_map | | -| map.cpp:392:37:392:39 | call to unordered_map | map.cpp:393:7:393:9 | m26 | | -| map.cpp:392:37:392:39 | call to unordered_map | map.cpp:394:7:394:9 | m26 | | -| map.cpp:392:37:392:39 | call to unordered_map | map.cpp:395:7:395:9 | m26 | | -| map.cpp:392:37:392:39 | call to unordered_map | map.cpp:396:7:396:9 | m26 | | -| map.cpp:392:37:392:39 | call to unordered_map | map.cpp:397:7:397:9 | m26 | | -| map.cpp:392:37:392:39 | call to unordered_map | map.cpp:398:7:398:9 | m26 | | -| map.cpp:392:37:392:39 | call to unordered_map | map.cpp:438:1:438:1 | m26 | | -| map.cpp:392:42:392:44 | call to unordered_map | map.cpp:399:7:399:9 | m27 | | -| map.cpp:392:42:392:44 | call to unordered_map | map.cpp:399:23:399:25 | m27 | | -| map.cpp:392:42:392:44 | call to unordered_map | map.cpp:400:7:400:9 | m27 | | -| map.cpp:392:42:392:44 | call to unordered_map | map.cpp:401:7:401:9 | m27 | | -| map.cpp:392:42:392:44 | call to unordered_map | map.cpp:401:23:401:25 | m27 | | -| map.cpp:392:42:392:44 | call to unordered_map | map.cpp:402:7:402:9 | m27 | | -| map.cpp:392:42:392:44 | call to unordered_map | map.cpp:438:1:438:1 | m27 | | -| map.cpp:392:47:392:49 | call to unordered_map | map.cpp:403:7:403:9 | m28 | | -| map.cpp:392:47:392:49 | call to unordered_map | map.cpp:403:23:403:25 | m28 | | -| map.cpp:392:47:392:49 | call to unordered_map | map.cpp:404:7:404:9 | m28 | | -| map.cpp:392:47:392:49 | call to unordered_map | map.cpp:405:7:405:9 | m28 | | -| map.cpp:392:47:392:49 | call to unordered_map | map.cpp:405:23:405:25 | m28 | | -| map.cpp:392:47:392:49 | call to unordered_map | map.cpp:406:7:406:9 | m28 | | -| map.cpp:392:47:392:49 | call to unordered_map | map.cpp:438:1:438:1 | m28 | | +| map.cpp:392:49:392:51 | call to unordered_map | map.cpp:393:7:393:9 | m26 | | +| map.cpp:392:49:392:51 | call to unordered_map | map.cpp:394:7:394:9 | m26 | | +| map.cpp:392:49:392:51 | call to unordered_map | map.cpp:395:7:395:9 | m26 | | +| map.cpp:392:49:392:51 | call to unordered_map | map.cpp:396:7:396:9 | m26 | | +| map.cpp:392:49:392:51 | call to unordered_map | map.cpp:397:7:397:9 | m26 | | +| map.cpp:392:49:392:51 | call to unordered_map | map.cpp:398:7:398:9 | m26 | | +| map.cpp:392:49:392:51 | call to unordered_map | map.cpp:438:1:438:1 | m26 | | +| map.cpp:392:54:392:56 | call to unordered_map | map.cpp:399:7:399:9 | m27 | | +| map.cpp:392:54:392:56 | call to unordered_map | map.cpp:399:23:399:25 | m27 | | +| map.cpp:392:54:392:56 | call to unordered_map | map.cpp:400:7:400:9 | m27 | | +| map.cpp:392:54:392:56 | call to unordered_map | map.cpp:401:7:401:9 | m27 | | +| map.cpp:392:54:392:56 | call to unordered_map | map.cpp:401:23:401:25 | m27 | | +| map.cpp:392:54:392:56 | call to unordered_map | map.cpp:402:7:402:9 | m27 | | +| map.cpp:392:54:392:56 | call to unordered_map | map.cpp:438:1:438:1 | m27 | | +| map.cpp:392:59:392:61 | call to unordered_map | map.cpp:403:7:403:9 | m28 | | +| map.cpp:392:59:392:61 | call to unordered_map | map.cpp:403:23:403:25 | m28 | | +| map.cpp:392:59:392:61 | call to unordered_map | map.cpp:404:7:404:9 | m28 | | +| map.cpp:392:59:392:61 | call to unordered_map | map.cpp:405:7:405:9 | m28 | | +| map.cpp:392:59:392:61 | call to unordered_map | map.cpp:405:23:405:25 | m28 | | +| map.cpp:392:59:392:61 | call to unordered_map | map.cpp:406:7:406:9 | m28 | | +| map.cpp:392:59:392:61 | call to unordered_map | map.cpp:438:1:438:1 | m28 | | | map.cpp:393:7:393:9 | m26 | map.cpp:393:11:393:21 | call to try_emplace | TAINT | | map.cpp:393:7:393:9 | ref arg m26 | map.cpp:394:7:394:9 | m26 | | | map.cpp:393:7:393:9 | ref arg m26 | map.cpp:395:7:395:9 | m26 | | @@ -3392,27 +3321,30 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:405:46:405:50 | def | map.cpp:405:7:405:9 | ref arg m28 | TAINT | | map.cpp:405:46:405:50 | def | map.cpp:405:11:405:21 | call to try_emplace | TAINT | | map.cpp:406:7:406:9 | m28 | map.cpp:406:7:406:9 | call to unordered_map | | -| map.cpp:409:50:409:52 | call to unordered_map | map.cpp:410:7:410:9 | m29 | | -| map.cpp:409:50:409:52 | call to unordered_map | map.cpp:411:7:411:9 | m29 | | -| map.cpp:409:50:409:52 | call to unordered_map | map.cpp:412:7:412:9 | m29 | | -| map.cpp:409:50:409:52 | call to unordered_map | map.cpp:438:1:438:1 | m29 | | -| map.cpp:409:55:409:57 | call to unordered_map | map.cpp:413:7:413:9 | m30 | | -| map.cpp:409:55:409:57 | call to unordered_map | map.cpp:414:7:414:9 | m30 | | -| map.cpp:409:55:409:57 | call to unordered_map | map.cpp:415:7:415:9 | m30 | | -| map.cpp:409:55:409:57 | call to unordered_map | map.cpp:438:1:438:1 | m30 | | -| map.cpp:409:60:409:62 | call to unordered_map | map.cpp:416:7:416:9 | m31 | | -| map.cpp:409:60:409:62 | call to unordered_map | map.cpp:417:7:417:9 | m31 | | -| map.cpp:409:60:409:62 | call to unordered_map | map.cpp:418:7:418:9 | m31 | | -| map.cpp:409:60:409:62 | call to unordered_map | map.cpp:438:1:438:1 | m31 | | -| map.cpp:409:65:409:67 | call to unordered_map | map.cpp:419:7:419:9 | m32 | | -| map.cpp:409:65:409:67 | call to unordered_map | map.cpp:420:7:420:9 | m32 | | -| map.cpp:409:65:409:67 | call to unordered_map | map.cpp:421:7:421:9 | m32 | | -| map.cpp:409:65:409:67 | call to unordered_map | map.cpp:438:1:438:1 | m32 | | +| map.cpp:409:56:409:58 | call to unordered_map | map.cpp:410:7:410:9 | m29 | | +| map.cpp:409:56:409:58 | call to unordered_map | map.cpp:411:7:411:9 | m29 | | +| map.cpp:409:56:409:58 | call to unordered_map | map.cpp:412:7:412:9 | m29 | | +| map.cpp:409:56:409:58 | call to unordered_map | map.cpp:438:1:438:1 | m29 | | +| map.cpp:409:61:409:63 | call to unordered_map | map.cpp:413:7:413:9 | m30 | | +| map.cpp:409:61:409:63 | call to unordered_map | map.cpp:414:7:414:9 | m30 | | +| map.cpp:409:61:409:63 | call to unordered_map | map.cpp:415:7:415:9 | m30 | | +| map.cpp:409:61:409:63 | call to unordered_map | map.cpp:438:1:438:1 | m30 | | +| map.cpp:409:66:409:68 | call to unordered_map | map.cpp:416:7:416:9 | m31 | | +| map.cpp:409:66:409:68 | call to unordered_map | map.cpp:417:7:417:9 | m31 | | +| map.cpp:409:66:409:68 | call to unordered_map | map.cpp:418:7:418:9 | m31 | | +| map.cpp:409:66:409:68 | call to unordered_map | map.cpp:438:1:438:1 | m31 | | +| map.cpp:409:71:409:73 | call to unordered_map | map.cpp:419:7:419:9 | m32 | | +| map.cpp:409:71:409:73 | call to unordered_map | map.cpp:420:7:420:9 | m32 | | +| map.cpp:409:71:409:73 | call to unordered_map | map.cpp:421:7:421:9 | m32 | | +| map.cpp:409:71:409:73 | call to unordered_map | map.cpp:438:1:438:1 | m32 | | +| map.cpp:409:105:409:105 | 0 | map.cpp:409:102:409:106 | call to pair | TAINT | +| map.cpp:409:113:409:113 | x | map.cpp:409:142:409:142 | x | | +| map.cpp:409:113:409:113 | x | map.cpp:409:145:409:145 | x | | +| map.cpp:409:145:409:145 | x | map.cpp:409:142:409:146 | call to pair | TAINT | | map.cpp:410:7:410:9 | m29 | map.cpp:410:11:410:21 | call to try_emplace | TAINT | | map.cpp:410:7:410:9 | ref arg m29 | map.cpp:411:7:411:9 | m29 | | | map.cpp:410:7:410:9 | ref arg m29 | map.cpp:412:7:412:9 | m29 | | | map.cpp:410:7:410:9 | ref arg m29 | map.cpp:438:1:438:1 | m29 | | -| map.cpp:410:11:410:21 | call to try_emplace | map.cpp:410:7:410:34 | call to pair | TAINT | | map.cpp:410:30:410:30 | 1 | map.cpp:410:7:410:9 | ref arg m29 | TAINT | | map.cpp:410:30:410:30 | 1 | map.cpp:410:11:410:21 | call to try_emplace | TAINT | | map.cpp:410:33:410:33 | 2 | map.cpp:410:7:410:9 | ref arg m29 | TAINT | @@ -3420,12 +3352,10 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:411:7:411:9 | m29 | map.cpp:411:7:411:9 | call to unordered_map | | | map.cpp:412:7:412:9 | m29 | map.cpp:412:10:412:10 | call to operator[] | TAINT | | map.cpp:412:7:412:9 | ref arg m29 | map.cpp:438:1:438:1 | m29 | | -| map.cpp:412:10:412:10 | call to operator[] | map.cpp:412:7:412:16 | call to pair | TAINT | | map.cpp:413:7:413:9 | m30 | map.cpp:413:11:413:21 | call to try_emplace | TAINT | | map.cpp:413:7:413:9 | ref arg m30 | map.cpp:414:7:414:9 | m30 | | | map.cpp:413:7:413:9 | ref arg m30 | map.cpp:415:7:415:9 | m30 | | | map.cpp:413:7:413:9 | ref arg m30 | map.cpp:438:1:438:1 | m30 | | -| map.cpp:413:11:413:21 | call to try_emplace | map.cpp:413:7:413:37 | call to pair | TAINT | | map.cpp:413:33:413:33 | 1 | map.cpp:413:7:413:9 | ref arg m30 | TAINT | | map.cpp:413:33:413:33 | 1 | map.cpp:413:11:413:21 | call to try_emplace | TAINT | | map.cpp:413:36:413:36 | 2 | map.cpp:413:7:413:9 | ref arg m30 | TAINT | @@ -3433,25 +3363,21 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:414:7:414:9 | m30 | map.cpp:414:7:414:9 | call to unordered_map | | | map.cpp:415:7:415:9 | m30 | map.cpp:415:10:415:10 | call to operator[] | TAINT | | map.cpp:415:7:415:9 | ref arg m30 | map.cpp:438:1:438:1 | m30 | | -| map.cpp:415:10:415:10 | call to operator[] | map.cpp:415:7:415:16 | call to pair | TAINT | | map.cpp:416:7:416:9 | m31 | map.cpp:416:11:416:21 | call to try_emplace | TAINT | | map.cpp:416:7:416:9 | ref arg m31 | map.cpp:417:7:417:9 | m31 | | | map.cpp:416:7:416:9 | ref arg m31 | map.cpp:418:7:418:9 | m31 | | | map.cpp:416:7:416:9 | ref arg m31 | map.cpp:438:1:438:1 | m31 | | -| map.cpp:416:11:416:21 | call to try_emplace | map.cpp:416:7:416:41 | call to pair | TAINT | | map.cpp:416:30:416:35 | call to source | map.cpp:416:7:416:9 | ref arg m31 | TAINT | | map.cpp:416:30:416:35 | call to source | map.cpp:416:11:416:21 | call to try_emplace | TAINT | -| map.cpp:416:40:416:40 | 2 | map.cpp:416:7:416:9 | ref arg m31 | TAINT | -| map.cpp:416:40:416:40 | 2 | map.cpp:416:11:416:21 | call to try_emplace | TAINT | +| map.cpp:416:41:416:41 | 2 | map.cpp:416:7:416:9 | ref arg m31 | TAINT | +| map.cpp:416:41:416:41 | 2 | map.cpp:416:11:416:21 | call to try_emplace | TAINT | | map.cpp:417:7:417:9 | m31 | map.cpp:417:7:417:9 | call to unordered_map | | | map.cpp:418:7:418:9 | m31 | map.cpp:418:10:418:10 | call to operator[] | TAINT | | map.cpp:418:7:418:9 | ref arg m31 | map.cpp:438:1:438:1 | m31 | | -| map.cpp:418:10:418:10 | call to operator[] | map.cpp:418:7:418:16 | call to pair | TAINT | | map.cpp:419:7:419:9 | m32 | map.cpp:419:11:419:21 | call to try_emplace | TAINT | | map.cpp:419:7:419:9 | ref arg m32 | map.cpp:420:7:420:9 | m32 | | | map.cpp:419:7:419:9 | ref arg m32 | map.cpp:421:7:421:9 | m32 | | | map.cpp:419:7:419:9 | ref arg m32 | map.cpp:438:1:438:1 | m32 | | -| map.cpp:419:11:419:21 | call to try_emplace | map.cpp:419:7:419:41 | call to pair | TAINT | | map.cpp:419:30:419:30 | 1 | map.cpp:419:7:419:9 | ref arg m32 | TAINT | | map.cpp:419:30:419:30 | 1 | map.cpp:419:11:419:21 | call to try_emplace | TAINT | | map.cpp:419:33:419:38 | call to source | map.cpp:419:7:419:9 | ref arg m32 | TAINT | @@ -3459,10 +3385,9 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:420:7:420:9 | m32 | map.cpp:420:7:420:9 | call to unordered_map | | | map.cpp:421:7:421:9 | m32 | map.cpp:421:10:421:10 | call to operator[] | TAINT | | map.cpp:421:7:421:9 | ref arg m32 | map.cpp:438:1:438:1 | m32 | | -| map.cpp:421:10:421:10 | call to operator[] | map.cpp:421:7:421:16 | call to pair | TAINT | -| map.cpp:424:37:424:39 | call to unordered_map | map.cpp:425:7:425:9 | m33 | | -| map.cpp:424:37:424:39 | call to unordered_map | map.cpp:426:7:426:9 | m33 | | -| map.cpp:424:37:424:39 | call to unordered_map | map.cpp:438:1:438:1 | m33 | | +| map.cpp:424:49:424:51 | call to unordered_map | map.cpp:425:7:425:9 | m33 | | +| map.cpp:424:49:424:51 | call to unordered_map | map.cpp:426:7:426:9 | m33 | | +| map.cpp:424:49:424:51 | call to unordered_map | map.cpp:438:1:438:1 | m33 | | | map.cpp:425:7:425:9 | m33 | map.cpp:425:11:425:17 | call to emplace | TAINT | | map.cpp:425:7:425:9 | ref arg m33 | map.cpp:426:7:426:9 | m33 | | | map.cpp:425:7:425:9 | ref arg m33 | map.cpp:438:1:438:1 | m33 | | @@ -3470,18 +3395,18 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:425:29:425:33 | def | map.cpp:425:11:425:17 | call to emplace | TAINT | | map.cpp:425:36:425:40 | first | map.cpp:425:7:425:40 | call to iterator | | | map.cpp:426:7:426:9 | m33 | map.cpp:426:7:426:9 | call to unordered_map | | -| map.cpp:428:37:428:39 | call to unordered_map | map.cpp:429:7:429:9 | m34 | | -| map.cpp:428:37:428:39 | call to unordered_map | map.cpp:430:7:430:9 | m34 | | -| map.cpp:428:37:428:39 | call to unordered_map | map.cpp:431:7:431:9 | m34 | | -| map.cpp:428:37:428:39 | call to unordered_map | map.cpp:432:7:432:9 | m34 | | -| map.cpp:428:37:428:39 | call to unordered_map | map.cpp:433:7:433:9 | m34 | | -| map.cpp:428:37:428:39 | call to unordered_map | map.cpp:433:24:433:26 | m34 | | -| map.cpp:428:37:428:39 | call to unordered_map | map.cpp:438:1:438:1 | m34 | | -| map.cpp:428:42:428:44 | call to unordered_map | map.cpp:434:7:434:9 | m35 | | -| map.cpp:428:42:428:44 | call to unordered_map | map.cpp:435:7:435:9 | m35 | | -| map.cpp:428:42:428:44 | call to unordered_map | map.cpp:436:7:436:9 | m35 | | -| map.cpp:428:42:428:44 | call to unordered_map | map.cpp:437:7:437:9 | m35 | | -| map.cpp:428:42:428:44 | call to unordered_map | map.cpp:438:1:438:1 | m35 | | +| map.cpp:428:49:428:51 | call to unordered_map | map.cpp:429:7:429:9 | m34 | | +| map.cpp:428:49:428:51 | call to unordered_map | map.cpp:430:7:430:9 | m34 | | +| map.cpp:428:49:428:51 | call to unordered_map | map.cpp:431:7:431:9 | m34 | | +| map.cpp:428:49:428:51 | call to unordered_map | map.cpp:432:7:432:9 | m34 | | +| map.cpp:428:49:428:51 | call to unordered_map | map.cpp:433:7:433:9 | m34 | | +| map.cpp:428:49:428:51 | call to unordered_map | map.cpp:433:24:433:26 | m34 | | +| map.cpp:428:49:428:51 | call to unordered_map | map.cpp:438:1:438:1 | m34 | | +| map.cpp:428:54:428:56 | call to unordered_map | map.cpp:434:7:434:9 | m35 | | +| map.cpp:428:54:428:56 | call to unordered_map | map.cpp:435:7:435:9 | m35 | | +| map.cpp:428:54:428:56 | call to unordered_map | map.cpp:436:7:436:9 | m35 | | +| map.cpp:428:54:428:56 | call to unordered_map | map.cpp:437:7:437:9 | m35 | | +| map.cpp:428:54:428:56 | call to unordered_map | map.cpp:438:1:438:1 | m35 | | | map.cpp:429:7:429:9 | m34 | map.cpp:429:11:429:17 | call to emplace | TAINT | | map.cpp:429:7:429:9 | ref arg m34 | map.cpp:430:7:430:9 | m34 | | | map.cpp:429:7:429:9 | ref arg m34 | map.cpp:431:7:431:9 | m34 | | @@ -3489,20 +3414,20 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:429:7:429:9 | ref arg m34 | map.cpp:433:7:433:9 | m34 | | | map.cpp:429:7:429:9 | ref arg m34 | map.cpp:433:24:433:26 | m34 | | | map.cpp:429:7:429:9 | ref arg m34 | map.cpp:438:1:438:1 | m34 | | -| map.cpp:429:19:429:57 | call to pair | map.cpp:429:7:429:9 | ref arg m34 | TAINT | -| map.cpp:429:19:429:57 | call to pair | map.cpp:429:11:429:17 | call to emplace | TAINT | -| map.cpp:429:52:429:56 | def | map.cpp:429:19:429:57 | call to pair | TAINT | -| map.cpp:429:60:429:64 | first | map.cpp:429:7:429:64 | call to iterator | | +| map.cpp:429:19:429:69 | call to pair | map.cpp:429:7:429:9 | ref arg m34 | TAINT | +| map.cpp:429:19:429:69 | call to pair | map.cpp:429:11:429:17 | call to emplace | TAINT | +| map.cpp:429:64:429:68 | def | map.cpp:429:19:429:69 | call to pair | TAINT | +| map.cpp:429:72:429:76 | first | map.cpp:429:7:429:76 | call to iterator | | | map.cpp:430:7:430:9 | m34 | map.cpp:430:7:430:9 | call to unordered_map | | | map.cpp:431:7:431:9 | m34 | map.cpp:431:11:431:17 | call to emplace | TAINT | | map.cpp:431:7:431:9 | ref arg m34 | map.cpp:432:7:432:9 | m34 | | | map.cpp:431:7:431:9 | ref arg m34 | map.cpp:433:7:433:9 | m34 | | | map.cpp:431:7:431:9 | ref arg m34 | map.cpp:433:24:433:26 | m34 | | | map.cpp:431:7:431:9 | ref arg m34 | map.cpp:438:1:438:1 | m34 | | -| map.cpp:431:19:431:60 | call to pair | map.cpp:431:7:431:9 | ref arg m34 | TAINT | -| map.cpp:431:19:431:60 | call to pair | map.cpp:431:11:431:17 | call to emplace | TAINT | -| map.cpp:431:52:431:57 | call to source | map.cpp:431:19:431:60 | call to pair | TAINT | -| map.cpp:431:63:431:67 | first | map.cpp:431:7:431:67 | call to iterator | | +| map.cpp:431:19:431:72 | call to pair | map.cpp:431:7:431:9 | ref arg m34 | TAINT | +| map.cpp:431:19:431:72 | call to pair | map.cpp:431:11:431:17 | call to emplace | TAINT | +| map.cpp:431:64:431:69 | call to source | map.cpp:431:19:431:72 | call to pair | TAINT | +| map.cpp:431:75:431:79 | first | map.cpp:431:7:431:79 | call to iterator | | | map.cpp:432:7:432:9 | m34 | map.cpp:432:7:432:9 | call to unordered_map | | | map.cpp:433:7:433:9 | m34 | map.cpp:433:11:433:22 | call to emplace_hint | TAINT | | map.cpp:433:7:433:9 | ref arg m34 | map.cpp:438:1:438:1 | m34 | | @@ -3523,10 +3448,10 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | map.cpp:436:7:436:9 | m35 | map.cpp:436:11:436:17 | call to emplace | TAINT | | map.cpp:436:7:436:9 | ref arg m35 | map.cpp:437:7:437:9 | m35 | | | map.cpp:436:7:436:9 | ref arg m35 | map.cpp:438:1:438:1 | m35 | | -| map.cpp:436:19:436:60 | call to pair | map.cpp:436:7:436:9 | ref arg m35 | TAINT | -| map.cpp:436:19:436:60 | call to pair | map.cpp:436:11:436:17 | call to emplace | TAINT | -| map.cpp:436:55:436:59 | def | map.cpp:436:19:436:60 | call to pair | TAINT | -| map.cpp:436:63:436:67 | first | map.cpp:436:7:436:67 | call to iterator | | +| map.cpp:436:19:436:72 | call to pair | map.cpp:436:7:436:9 | ref arg m35 | TAINT | +| map.cpp:436:19:436:72 | call to pair | map.cpp:436:11:436:17 | call to emplace | TAINT | +| map.cpp:436:67:436:71 | def | map.cpp:436:19:436:72 | call to pair | TAINT | +| map.cpp:436:75:436:79 | first | map.cpp:436:7:436:79 | call to iterator | | | map.cpp:437:7:437:9 | m35 | map.cpp:437:7:437:9 | call to unordered_map | | | map.cpp:446:23:446:23 | call to map | map.cpp:448:3:448:3 | m | | | map.cpp:446:23:446:23 | call to map | map.cpp:449:12:449:12 | m | | @@ -4920,1047 +4845,1270 @@ WARNING: module 'TaintTracking' has been deprecated and may be removed in future | standalone_iterators.cpp:128:2:128:3 | it | standalone_iterators.cpp:128:5:128:5 | call to operator+= | TAINT | | standalone_iterators.cpp:128:2:128:3 | ref arg it | standalone_iterators.cpp:129:7:129:8 | it | | | standalone_iterators.cpp:128:8:128:13 | call to source | standalone_iterators.cpp:128:2:128:3 | ref arg it | TAINT | -| stl.h:95:69:95:69 | x | stl.h:95:69:95:69 | x | | -| stl.h:95:69:95:69 | x | stl.h:95:69:95:69 | x | | -| stl.h:95:69:95:69 | x | stl.h:95:69:95:69 | x | | -| stl.h:95:69:95:69 | x | stl.h:96:42:96:42 | x | | -| stl.h:95:69:95:69 | x | stl.h:96:42:96:42 | x | | -| stl.h:95:69:95:69 | x | stl.h:96:42:96:42 | x | | -| stl.h:96:42:96:42 | ref arg x | stl.h:95:69:95:69 | x | | -| stl.h:96:42:96:42 | ref arg x | stl.h:95:69:95:69 | x | | -| stl.h:292:30:292:40 | 0 | file://:0:0:0:0 | noexcept(...) | TAINT | -| stl.h:292:30:292:40 | 0 | file://:0:0:0:0 | noexcept(...) | TAINT | -| stl.h:292:30:292:40 | call to allocator | stl.h:292:21:292:41 | noexcept(...) | TAINT | -| stl.h:292:30:292:40 | call to allocator | stl.h:292:21:292:41 | noexcept(...) | TAINT | -| stl.h:292:30:292:40 | call to allocator | stl.h:292:21:292:41 | noexcept(...) | TAINT | -| stl.h:292:30:292:40 | call to allocator | stl.h:292:21:292:41 | noexcept(...) | TAINT | -| stl.h:292:30:292:40 | call to allocator | stl.h:292:21:292:41 | noexcept(...) | TAINT | -| stl.h:292:30:292:40 | call to allocator | stl.h:292:21:292:41 | noexcept(...) | TAINT | -| stl.h:292:53:292:63 | 0 | stl.h:292:46:292:64 | constructor init | TAINT | -| stl.h:396:3:396:3 | this | stl.h:396:36:396:43 | constructor init of field first [pre-this] | | -| stl.h:396:3:396:3 | this | stl.h:396:36:396:43 | constructor init of field first [pre-this] | | -| stl.h:396:3:396:3 | this | stl.h:396:36:396:43 | constructor init of field first [pre-this] | | -| stl.h:396:3:396:3 | this | stl.h:396:36:396:43 | constructor init of field first [pre-this] | | -| stl.h:396:3:396:3 | this | stl.h:396:36:396:43 | constructor init of field first [pre-this] | | -| stl.h:396:3:396:6 | this | stl.h:396:36:396:43 | constructor init of field first [pre-this] | | -| stl.h:396:18:396:18 | x | stl.h:396:42:396:42 | x | | -| stl.h:396:18:396:18 | x | stl.h:396:42:396:42 | x | | -| stl.h:396:18:396:18 | x | stl.h:396:42:396:42 | x | | -| stl.h:396:18:396:18 | x | stl.h:396:42:396:42 | x | | -| stl.h:396:18:396:18 | x | stl.h:396:42:396:42 | x | | -| stl.h:396:18:396:18 | x | stl.h:396:42:396:42 | x | | -| stl.h:396:31:396:31 | y | stl.h:396:53:396:53 | y | | -| stl.h:396:31:396:31 | y | stl.h:396:53:396:53 | y | | -| stl.h:396:31:396:31 | y | stl.h:396:53:396:53 | y | | -| stl.h:396:31:396:31 | y | stl.h:396:53:396:53 | y | | -| stl.h:396:31:396:31 | y | stl.h:396:53:396:53 | y | | -| stl.h:396:31:396:31 | y | stl.h:396:53:396:53 | y | | -| stl.h:396:36:396:43 | call to unknown function | stl.h:396:36:396:43 | constructor init of field first | TAINT | -| stl.h:396:36:396:43 | constructor init of field first [post-this] | stl.h:396:46:396:54 | constructor init of field second [pre-this] | | -| stl.h:396:36:396:43 | constructor init of field first [post-this] | stl.h:396:46:396:54 | constructor init of field second [pre-this] | | -| stl.h:396:36:396:43 | constructor init of field first [post-this] | stl.h:396:46:396:54 | constructor init of field second [pre-this] | | -| stl.h:396:36:396:43 | constructor init of field first [post-this] | stl.h:396:46:396:54 | constructor init of field second [pre-this] | | -| stl.h:396:36:396:43 | constructor init of field first [post-this] | stl.h:396:46:396:54 | constructor init of field second [pre-this] | | -| stl.h:396:36:396:43 | constructor init of field first [post-this] | stl.h:396:46:396:54 | constructor init of field second [pre-this] | | -| stl.h:396:36:396:43 | constructor init of field first [pre-this] | stl.h:396:46:396:54 | constructor init of field second [pre-this] | | -| stl.h:396:36:396:43 | constructor init of field first [pre-this] | stl.h:396:46:396:54 | constructor init of field second [pre-this] | | -| stl.h:396:36:396:43 | constructor init of field first [pre-this] | stl.h:396:46:396:54 | constructor init of field second [pre-this] | | -| stl.h:396:36:396:43 | constructor init of field first [pre-this] | stl.h:396:46:396:54 | constructor init of field second [pre-this] | | -| stl.h:396:36:396:43 | constructor init of field first [pre-this] | stl.h:396:46:396:54 | constructor init of field second [pre-this] | | -| stl.h:396:36:396:43 | constructor init of field first [pre-this] | stl.h:396:46:396:54 | constructor init of field second [pre-this] | | -| stl.h:396:42:396:42 | x | stl.h:396:36:396:43 | constructor init of field first | TAINT | -| stl.h:396:42:396:42 | x | stl.h:396:36:396:43 | constructor init of field first | TAINT | -| stl.h:396:42:396:42 | x | stl.h:396:36:396:43 | constructor init of field first | TAINT | -| stl.h:396:42:396:42 | x | stl.h:396:36:396:43 | constructor init of field first | TAINT | -| stl.h:396:42:396:42 | x | stl.h:396:36:396:43 | constructor init of field first | TAINT | -| stl.h:396:46:396:54 | call to unknown function | stl.h:396:46:396:54 | constructor init of field second | TAINT | -| stl.h:396:53:396:53 | y | stl.h:396:46:396:54 | constructor init of field second | TAINT | -| stl.h:396:53:396:53 | y | stl.h:396:46:396:54 | constructor init of field second | TAINT | -| stl.h:396:53:396:53 | y | stl.h:396:46:396:54 | constructor init of field second | TAINT | -| stl.h:396:53:396:53 | y | stl.h:396:46:396:54 | constructor init of field second | TAINT | -| stl.h:396:53:396:53 | y | stl.h:396:46:396:54 | constructor init of field second | TAINT | -| stl.h:402:87:402:87 | x | stl.h:402:87:402:87 | x | | -| stl.h:402:87:402:87 | x | stl.h:402:87:402:87 | x | | -| stl.h:402:87:402:87 | x | stl.h:402:87:402:87 | x | | -| stl.h:402:87:402:87 | x | stl.h:402:87:402:87 | x | | -| stl.h:402:87:402:87 | x | stl.h:402:87:402:87 | x | | -| stl.h:402:87:402:87 | x | stl.h:402:87:402:87 | x | | -| stl.h:402:87:402:87 | x | stl.h:402:87:402:87 | x | | -| stl.h:402:87:402:87 | x | stl.h:403:58:403:58 | x | | -| stl.h:402:87:402:87 | x | stl.h:403:58:403:58 | x | | -| stl.h:402:87:402:87 | x | stl.h:403:58:403:58 | x | | -| stl.h:402:87:402:87 | x | stl.h:403:58:403:58 | x | | -| stl.h:402:87:402:87 | x | stl.h:403:58:403:58 | x | | -| stl.h:402:87:402:87 | x | stl.h:403:58:403:58 | x | | -| stl.h:402:87:402:87 | x | stl.h:403:58:403:58 | x | | -| stl.h:402:95:402:95 | y | stl.h:402:95:402:95 | y | | -| stl.h:402:95:402:95 | y | stl.h:402:95:402:95 | y | | -| stl.h:402:95:402:95 | y | stl.h:402:95:402:95 | y | | -| stl.h:402:95:402:95 | y | stl.h:402:95:402:95 | y | | -| stl.h:402:95:402:95 | y | stl.h:402:95:402:95 | y | | -| stl.h:402:95:402:95 | y | stl.h:402:95:402:95 | y | | -| stl.h:402:95:402:95 | y | stl.h:402:95:402:95 | y | | -| stl.h:402:95:402:95 | y | stl.h:403:79:403:79 | y | | -| stl.h:402:95:402:95 | y | stl.h:403:79:403:79 | y | | -| stl.h:402:95:402:95 | y | stl.h:403:79:403:79 | y | | -| stl.h:402:95:402:95 | y | stl.h:403:79:403:79 | y | | -| stl.h:402:95:402:95 | y | stl.h:403:79:403:79 | y | | -| stl.h:402:95:402:95 | y | stl.h:403:79:403:79 | y | | -| stl.h:402:95:402:95 | y | stl.h:403:79:403:79 | y | | -| stl.h:403:58:403:58 | x | stl.h:403:41:403:56 | call to forward | TAINT | -| stl.h:403:58:403:58 | x | stl.h:403:41:403:56 | call to forward | TAINT | -| stl.h:403:58:403:58 | x | stl.h:403:41:403:56 | call to forward | TAINT | -| stl.h:403:58:403:58 | x | stl.h:403:41:403:56 | call to forward | TAINT | -| stl.h:403:58:403:58 | x | stl.h:403:41:403:56 | call to forward | TAINT | -| stl.h:403:58:403:58 | x | stl.h:403:41:403:56 | call to forward | TAINT | -| stl.h:403:62:403:77 | call to forward | stl.h:403:3:403:82 | call to pair | TAINT | -| stl.h:403:62:403:77 | call to forward | stl.h:403:3:403:82 | call to pair | TAINT | -| stl.h:403:62:403:77 | call to forward | stl.h:403:3:403:82 | call to pair | TAINT | -| stl.h:403:62:403:77 | call to forward | stl.h:403:3:403:82 | call to pair | TAINT | -| stl.h:403:62:403:77 | call to forward | stl.h:403:3:403:82 | call to pair | TAINT | -| stl.h:403:62:403:77 | call to forward | stl.h:403:3:403:82 | call to pair | TAINT | -| stl.h:403:79:403:79 | y | stl.h:403:3:403:82 | call to pair | TAINT | -| stl.h:403:79:403:79 | y | stl.h:403:3:403:82 | call to pair | TAINT | -| stl.h:403:79:403:79 | y | stl.h:403:3:403:82 | call to pair | TAINT | -| stl.h:403:79:403:79 | y | stl.h:403:3:403:82 | call to pair | TAINT | -| stl.h:403:79:403:79 | y | stl.h:403:3:403:82 | call to pair | TAINT | -| stl.h:403:79:403:79 | y | stl.h:403:3:403:82 | call to pair | TAINT | -| stl.h:403:79:403:79 | y | stl.h:403:62:403:77 | call to forward | TAINT | -| stl.h:403:79:403:79 | y | stl.h:403:62:403:77 | call to forward | TAINT | -| stl.h:403:79:403:79 | y | stl.h:403:62:403:77 | call to forward | TAINT | -| stl.h:403:79:403:79 | y | stl.h:403:62:403:77 | call to forward | TAINT | -| stl.h:403:79:403:79 | y | stl.h:403:62:403:77 | call to forward | TAINT | -| stl.h:403:79:403:79 | y | stl.h:403:62:403:77 | call to forward | TAINT | -| string.cpp:25:12:25:17 | call to source | string.cpp:29:7:29:7 | a | | -| string.cpp:26:16:26:20 | 123 | string.cpp:26:16:26:21 | call to basic_string | TAINT | -| string.cpp:26:16:26:21 | call to basic_string | string.cpp:30:7:30:7 | b | | -| string.cpp:26:16:26:21 | call to basic_string | string.cpp:32:7:32:7 | b | | -| string.cpp:27:16:27:21 | call to source | string.cpp:27:16:27:24 | call to basic_string | TAINT | -| string.cpp:27:16:27:24 | call to basic_string | string.cpp:31:7:31:7 | c | | -| string.cpp:27:16:27:24 | call to basic_string | string.cpp:33:7:33:7 | c | | -| string.cpp:32:7:32:7 | b | string.cpp:32:9:32:13 | call to c_str | TAINT | -| string.cpp:33:7:33:7 | c | string.cpp:33:9:33:13 | call to c_str | TAINT | -| string.cpp:38:16:38:28 | call to basic_string | string.cpp:39:7:39:11 | path1 | | -| string.cpp:38:17:38:26 | call to user_input | string.cpp:38:16:38:28 | call to basic_string | TAINT | -| string.cpp:39:7:39:11 | path1 | string.cpp:39:13:39:17 | call to c_str | TAINT | -| string.cpp:42:10:42:19 | call to user_input | string.cpp:42:10:42:21 | call to basic_string | TAINT | -| string.cpp:42:10:42:21 | call to basic_string | string.cpp:42:2:42:21 | ... = ... | | -| string.cpp:42:10:42:21 | call to basic_string | string.cpp:43:7:43:11 | path2 | | -| string.cpp:43:7:43:11 | path2 | string.cpp:43:13:43:17 | call to c_str | TAINT | -| string.cpp:45:15:45:24 | call to user_input | string.cpp:45:15:45:27 | call to basic_string | TAINT | -| string.cpp:45:15:45:27 | call to basic_string | string.cpp:46:7:46:11 | path3 | | -| string.cpp:46:7:46:11 | path3 | string.cpp:46:13:46:17 | call to c_str | TAINT | -| string.cpp:51:19:51:24 | call to source | string.cpp:54:17:54:18 | cs | | -| string.cpp:51:19:51:24 | call to source | string.cpp:56:7:56:8 | cs | | -| string.cpp:54:17:54:18 | cs | string.cpp:54:17:54:19 | call to basic_string | TAINT | -| string.cpp:54:17:54:19 | call to basic_string | string.cpp:57:7:57:8 | ss | | -| string.cpp:62:19:62:24 | call to source | string.cpp:65:17:65:18 | cs | | -| string.cpp:65:17:65:18 | cs | string.cpp:65:17:65:19 | call to basic_string | TAINT | -| string.cpp:65:17:65:19 | call to basic_string | string.cpp:68:7:68:8 | ss | | -| string.cpp:65:17:65:19 | call to basic_string | string.cpp:71:7:71:8 | ss | | -| string.cpp:68:7:68:8 | ss | string.cpp:68:10:68:14 | call to c_str | TAINT | -| string.cpp:68:10:68:14 | call to c_str | string.cpp:68:2:68:16 | ... = ... | | -| string.cpp:68:10:68:14 | call to c_str | string.cpp:70:7:70:8 | cs | | -| string.cpp:77:18:77:24 | hello | string.cpp:77:18:77:25 | call to basic_string | TAINT | -| string.cpp:77:18:77:25 | call to basic_string | string.cpp:82:8:82:9 | s1 | | -| string.cpp:78:19:78:26 | call to basic_string | string.cpp:83:8:83:9 | s2 | | -| string.cpp:78:20:78:26 | hello | string.cpp:78:19:78:26 | call to basic_string | TAINT | -| string.cpp:80:8:80:14 | call to basic_string | string.cpp:80:3:80:14 | ... = ... | | -| string.cpp:80:8:80:14 | call to basic_string | string.cpp:84:8:84:9 | s3 | | -| string.cpp:80:8:80:14 | hello | string.cpp:80:8:80:14 | call to basic_string | TAINT | -| string.cpp:88:18:88:23 | call to source | string.cpp:88:18:88:26 | call to basic_string | TAINT | -| string.cpp:88:18:88:26 | call to basic_string | string.cpp:93:8:93:9 | s1 | | -| string.cpp:89:19:89:27 | call to basic_string | string.cpp:94:8:94:9 | s2 | | -| string.cpp:89:20:89:25 | call to source | string.cpp:89:19:89:27 | call to basic_string | TAINT | -| string.cpp:91:8:91:13 | call to source | string.cpp:91:8:91:15 | call to basic_string | TAINT | -| string.cpp:91:8:91:15 | call to basic_string | string.cpp:91:3:91:15 | ... = ... | | -| string.cpp:91:8:91:15 | call to basic_string | string.cpp:95:8:95:9 | s3 | | -| string.cpp:99:15:99:16 | call to basic_string | string.cpp:100:20:100:21 | s1 | | -| string.cpp:99:15:99:16 | call to basic_string | string.cpp:102:8:102:9 | s1 | | -| string.cpp:99:15:99:16 | call to basic_string | string.cpp:104:8:104:9 | s1 | | -| string.cpp:100:20:100:21 | s1 | string.cpp:105:8:105:9 | s2 | | -| string.cpp:102:8:102:9 | s1 | string.cpp:102:3:102:9 | ... = ... | | -| string.cpp:102:8:102:9 | s1 | string.cpp:106:8:106:9 | s3 | | -| string.cpp:110:19:110:40 | call to basic_string | string.cpp:114:8:114:9 | s1 | | -| string.cpp:110:32:110:37 | call to source | string.cpp:110:19:110:40 | call to basic_string | TAINT | -| string.cpp:112:8:112:28 | call to basic_string | string.cpp:112:3:112:28 | ... = ... | | -| string.cpp:112:8:112:28 | call to basic_string | string.cpp:115:8:115:9 | s2 | | -| string.cpp:112:20:112:25 | call to source | string.cpp:112:8:112:28 | call to basic_string | TAINT | -| string.cpp:120:16:120:21 | call to source | string.cpp:120:16:120:24 | call to basic_string | TAINT | -| string.cpp:120:16:120:24 | call to basic_string | string.cpp:121:15:121:15 | s | | -| string.cpp:120:16:120:24 | call to basic_string | string.cpp:125:33:125:33 | s | | -| string.cpp:120:16:120:24 | call to basic_string | string.cpp:125:50:125:50 | s | | -| string.cpp:120:16:120:24 | call to basic_string | string.cpp:129:16:129:16 | s | | -| string.cpp:121:15:121:15 | (__begin) | string.cpp:121:15:121:15 | call to operator* | TAINT | -| string.cpp:121:15:121:15 | (__begin) | string.cpp:121:15:121:15 | call to operator++ | | -| string.cpp:121:15:121:15 | (__end) | string.cpp:121:15:121:15 | call to iterator | | -| string.cpp:121:15:121:15 | (__range) | string.cpp:121:15:121:15 | call to begin | TAINT | -| string.cpp:121:15:121:15 | (__range) | string.cpp:121:15:121:15 | call to end | TAINT | -| string.cpp:121:15:121:15 | call to begin | string.cpp:121:15:121:15 | (__begin) | | -| string.cpp:121:15:121:15 | call to begin | string.cpp:121:15:121:15 | (__begin) | | -| string.cpp:121:15:121:15 | call to begin | string.cpp:121:15:121:15 | (__begin) | | -| string.cpp:121:15:121:15 | call to end | string.cpp:121:15:121:15 | (__end) | | -| string.cpp:121:15:121:15 | call to operator* | string.cpp:122:8:122:8 | c | | -| string.cpp:121:15:121:15 | ref arg (__begin) | string.cpp:121:15:121:15 | (__begin) | | -| string.cpp:121:15:121:15 | ref arg (__begin) | string.cpp:121:15:121:15 | (__begin) | | -| string.cpp:121:15:121:15 | ref arg (__begin) | string.cpp:121:15:121:15 | (__begin) | | -| string.cpp:121:15:121:15 | ref arg (__begin) | string.cpp:121:15:121:15 | (__begin) | | -| string.cpp:121:15:121:15 | ref arg (__begin) | string.cpp:121:15:121:15 | (__begin) | | -| string.cpp:121:15:121:15 | ref arg (__begin) | string.cpp:121:15:121:15 | (__begin) | | -| string.cpp:121:15:121:15 | ref arg (__range) | string.cpp:121:15:121:15 | (__range) | | -| string.cpp:121:15:121:15 | s | string.cpp:121:15:121:15 | (__range) | | -| string.cpp:121:15:121:15 | s | string.cpp:121:15:121:15 | (__range) | | -| string.cpp:121:15:121:15 | s | string.cpp:121:15:121:15 | call to operator* | TAINT | -| string.cpp:125:33:125:33 | ref arg s | string.cpp:125:50:125:50 | s | | -| string.cpp:125:33:125:33 | ref arg s | string.cpp:129:16:129:16 | s | | -| string.cpp:125:33:125:33 | s | string.cpp:125:35:125:39 | call to begin | TAINT | -| string.cpp:125:35:125:39 | call to begin | string.cpp:125:44:125:45 | it | | -| string.cpp:125:35:125:39 | call to begin | string.cpp:125:61:125:62 | it | | -| string.cpp:125:35:125:39 | call to begin | string.cpp:126:9:126:10 | it | | -| string.cpp:125:50:125:50 | ref arg s | string.cpp:125:50:125:50 | s | | -| string.cpp:125:50:125:50 | ref arg s | string.cpp:129:16:129:16 | s | | -| string.cpp:125:50:125:50 | s | string.cpp:125:52:125:54 | call to end | TAINT | -| string.cpp:125:61:125:62 | it | string.cpp:125:59:125:59 | call to operator++ | | -| string.cpp:125:61:125:62 | ref arg it | string.cpp:125:44:125:45 | it | | -| string.cpp:125:61:125:62 | ref arg it | string.cpp:125:61:125:62 | it | | -| string.cpp:125:61:125:62 | ref arg it | string.cpp:126:9:126:10 | it | | -| string.cpp:126:9:126:10 | it | string.cpp:126:8:126:8 | call to operator* | TAINT | -| string.cpp:126:9:126:10 | ref arg it | string.cpp:125:44:125:45 | it | | -| string.cpp:126:9:126:10 | ref arg it | string.cpp:125:61:125:62 | it | | -| string.cpp:126:9:126:10 | ref arg it | string.cpp:126:9:126:10 | it | | -| string.cpp:129:16:129:16 | (__begin) | string.cpp:129:16:129:16 | call to operator* | TAINT | -| string.cpp:129:16:129:16 | (__begin) | string.cpp:129:16:129:16 | call to operator++ | | -| string.cpp:129:16:129:16 | (__end) | string.cpp:129:16:129:16 | call to iterator | | -| string.cpp:129:16:129:16 | (__range) | string.cpp:129:16:129:16 | call to begin | TAINT | -| string.cpp:129:16:129:16 | (__range) | string.cpp:129:16:129:16 | call to end | TAINT | -| string.cpp:129:16:129:16 | call to begin | string.cpp:129:16:129:16 | (__begin) | | -| string.cpp:129:16:129:16 | call to begin | string.cpp:129:16:129:16 | (__begin) | | -| string.cpp:129:16:129:16 | call to begin | string.cpp:129:16:129:16 | (__begin) | | -| string.cpp:129:16:129:16 | call to end | string.cpp:129:16:129:16 | (__end) | | -| string.cpp:129:16:129:16 | call to operator* | string.cpp:130:8:130:8 | c | | -| string.cpp:129:16:129:16 | ref arg (__begin) | string.cpp:129:16:129:16 | (__begin) | | -| string.cpp:129:16:129:16 | ref arg (__begin) | string.cpp:129:16:129:16 | (__begin) | | -| string.cpp:129:16:129:16 | ref arg (__begin) | string.cpp:129:16:129:16 | (__begin) | | -| string.cpp:129:16:129:16 | ref arg (__begin) | string.cpp:129:16:129:16 | (__begin) | | -| string.cpp:129:16:129:16 | ref arg (__begin) | string.cpp:129:16:129:16 | (__begin) | | -| string.cpp:129:16:129:16 | ref arg (__begin) | string.cpp:129:16:129:16 | (__begin) | | -| string.cpp:129:16:129:16 | ref arg (__range) | string.cpp:129:16:129:16 | (__range) | | -| string.cpp:129:16:129:16 | s | string.cpp:129:16:129:16 | (__range) | | -| string.cpp:129:16:129:16 | s | string.cpp:129:16:129:16 | (__range) | | -| string.cpp:129:16:129:16 | s | string.cpp:129:16:129:16 | call to operator* | TAINT | -| string.cpp:133:28:133:33 | call to source | string.cpp:133:28:133:36 | call to basic_string | TAINT | -| string.cpp:133:28:133:36 | call to basic_string | string.cpp:134:22:134:28 | const_s | | -| string.cpp:134:22:134:22 | (__begin) | string.cpp:134:22:134:22 | call to operator* | TAINT | -| string.cpp:134:22:134:22 | (__begin) | string.cpp:134:22:134:22 | call to operator++ | | -| string.cpp:134:22:134:22 | (__range) | string.cpp:134:22:134:22 | call to begin | TAINT | -| string.cpp:134:22:134:22 | (__range) | string.cpp:134:22:134:22 | call to end | TAINT | -| string.cpp:134:22:134:22 | call to begin | string.cpp:134:22:134:22 | (__begin) | | -| string.cpp:134:22:134:22 | call to begin | string.cpp:134:22:134:22 | (__begin) | | -| string.cpp:134:22:134:22 | call to begin | string.cpp:134:22:134:22 | (__begin) | | -| string.cpp:134:22:134:22 | call to end | string.cpp:134:22:134:22 | (__end) | | -| string.cpp:134:22:134:22 | call to operator* | string.cpp:135:8:135:8 | c | | -| string.cpp:134:22:134:22 | ref arg (__begin) | string.cpp:134:22:134:22 | (__begin) | | -| string.cpp:134:22:134:22 | ref arg (__begin) | string.cpp:134:22:134:22 | (__begin) | | -| string.cpp:134:22:134:22 | ref arg (__begin) | string.cpp:134:22:134:22 | (__begin) | | -| string.cpp:134:22:134:28 | const_s | string.cpp:134:22:134:22 | (__range) | | -| string.cpp:134:22:134:28 | const_s | string.cpp:134:22:134:22 | (__range) | | -| string.cpp:134:22:134:28 | const_s | string.cpp:134:22:134:22 | call to operator* | TAINT | -| string.cpp:141:18:141:24 | hello | string.cpp:141:18:141:25 | call to basic_string | TAINT | -| string.cpp:141:18:141:25 | call to basic_string | string.cpp:144:8:144:9 | s1 | | -| string.cpp:141:18:141:25 | call to basic_string | string.cpp:144:13:144:14 | s1 | | -| string.cpp:141:18:141:25 | call to basic_string | string.cpp:145:8:145:9 | s1 | | -| string.cpp:141:18:141:25 | call to basic_string | string.cpp:146:13:146:14 | s1 | | -| string.cpp:141:18:141:25 | call to basic_string | string.cpp:149:8:149:9 | s1 | | -| string.cpp:141:18:141:25 | call to basic_string | string.cpp:150:8:150:9 | s1 | | -| string.cpp:142:18:142:23 | call to source | string.cpp:142:18:142:26 | call to basic_string | TAINT | -| string.cpp:142:18:142:26 | call to basic_string | string.cpp:145:13:145:14 | s2 | | -| string.cpp:142:18:142:26 | call to basic_string | string.cpp:146:8:146:9 | s2 | | -| string.cpp:142:18:142:26 | call to basic_string | string.cpp:147:8:147:9 | s2 | | -| string.cpp:142:18:142:26 | call to basic_string | string.cpp:147:13:147:14 | s2 | | -| string.cpp:144:8:144:9 | s1 | string.cpp:144:11:144:11 | call to operator+ | TAINT | -| string.cpp:144:13:144:14 | s1 | string.cpp:144:11:144:11 | call to operator+ | TAINT | +| stl.h:71:69:71:69 | x | stl.h:71:69:71:69 | x | | +| stl.h:71:69:71:69 | x | stl.h:71:69:71:69 | x | | +| stl.h:71:69:71:69 | x | stl.h:71:69:71:69 | x | | +| stl.h:71:69:71:69 | x | stl.h:72:42:72:42 | x | | +| stl.h:71:69:71:69 | x | stl.h:72:42:72:42 | x | | +| stl.h:71:69:71:69 | x | stl.h:72:42:72:42 | x | | +| stl.h:72:42:72:42 | ref arg x | stl.h:71:69:71:69 | x | | +| stl.h:72:42:72:42 | ref arg x | stl.h:71:69:71:69 | x | | +| stl.h:323:30:323:40 | 0 | file://:0:0:0:0 | noexcept(...) | TAINT | +| stl.h:429:3:429:3 | this | stl.h:429:36:429:43 | constructor init of field first [pre-this] | | +| stl.h:429:3:429:3 | this | stl.h:429:36:429:43 | constructor init of field first [pre-this] | | +| stl.h:429:3:429:3 | this | stl.h:429:36:429:43 | constructor init of field first [pre-this] | | +| stl.h:429:3:429:3 | this | stl.h:429:36:429:43 | constructor init of field first [pre-this] | | +| stl.h:429:3:429:3 | this | stl.h:429:36:429:43 | constructor init of field first [pre-this] | | +| stl.h:429:3:429:3 | this | stl.h:429:36:429:43 | constructor init of field first [pre-this] | | +| stl.h:429:3:429:6 | this | stl.h:429:36:429:43 | constructor init of field first [pre-this] | | +| stl.h:429:18:429:18 | x | stl.h:429:42:429:42 | x | | +| stl.h:429:18:429:18 | x | stl.h:429:42:429:42 | x | | +| stl.h:429:18:429:18 | x | stl.h:429:42:429:42 | x | | +| stl.h:429:18:429:18 | x | stl.h:429:42:429:42 | x | | +| stl.h:429:18:429:18 | x | stl.h:429:42:429:42 | x | | +| stl.h:429:18:429:18 | x | stl.h:429:42:429:42 | x | | +| stl.h:429:18:429:18 | x | stl.h:429:42:429:42 | x | | +| stl.h:429:31:429:31 | y | stl.h:429:53:429:53 | y | | +| stl.h:429:31:429:31 | y | stl.h:429:53:429:53 | y | | +| stl.h:429:31:429:31 | y | stl.h:429:53:429:53 | y | | +| stl.h:429:31:429:31 | y | stl.h:429:53:429:53 | y | | +| stl.h:429:31:429:31 | y | stl.h:429:53:429:53 | y | | +| stl.h:429:31:429:31 | y | stl.h:429:53:429:53 | y | | +| stl.h:429:31:429:31 | y | stl.h:429:53:429:53 | y | | +| stl.h:429:36:429:43 | call to unknown function | stl.h:429:36:429:43 | constructor init of field first | TAINT | +| stl.h:429:36:429:43 | constructor init of field first [post-this] | stl.h:429:46:429:54 | constructor init of field second [pre-this] | | +| stl.h:429:36:429:43 | constructor init of field first [post-this] | stl.h:429:46:429:54 | constructor init of field second [pre-this] | | +| stl.h:429:36:429:43 | constructor init of field first [post-this] | stl.h:429:46:429:54 | constructor init of field second [pre-this] | | +| stl.h:429:36:429:43 | constructor init of field first [post-this] | stl.h:429:46:429:54 | constructor init of field second [pre-this] | | +| stl.h:429:36:429:43 | constructor init of field first [post-this] | stl.h:429:46:429:54 | constructor init of field second [pre-this] | | +| stl.h:429:36:429:43 | constructor init of field first [post-this] | stl.h:429:46:429:54 | constructor init of field second [pre-this] | | +| stl.h:429:36:429:43 | constructor init of field first [post-this] | stl.h:429:46:429:54 | constructor init of field second [pre-this] | | +| stl.h:429:36:429:43 | constructor init of field first [pre-this] | stl.h:429:46:429:54 | constructor init of field second [pre-this] | | +| stl.h:429:36:429:43 | constructor init of field first [pre-this] | stl.h:429:46:429:54 | constructor init of field second [pre-this] | | +| stl.h:429:36:429:43 | constructor init of field first [pre-this] | stl.h:429:46:429:54 | constructor init of field second [pre-this] | | +| stl.h:429:36:429:43 | constructor init of field first [pre-this] | stl.h:429:46:429:54 | constructor init of field second [pre-this] | | +| stl.h:429:36:429:43 | constructor init of field first [pre-this] | stl.h:429:46:429:54 | constructor init of field second [pre-this] | | +| stl.h:429:36:429:43 | constructor init of field first [pre-this] | stl.h:429:46:429:54 | constructor init of field second [pre-this] | | +| stl.h:429:36:429:43 | constructor init of field first [pre-this] | stl.h:429:46:429:54 | constructor init of field second [pre-this] | | +| stl.h:429:42:429:42 | x | stl.h:429:36:429:43 | constructor init of field first | TAINT | +| stl.h:429:42:429:42 | x | stl.h:429:36:429:43 | constructor init of field first | TAINT | +| stl.h:429:42:429:42 | x | stl.h:429:36:429:43 | constructor init of field first | TAINT | +| stl.h:429:42:429:42 | x | stl.h:429:36:429:43 | constructor init of field first | TAINT | +| stl.h:429:42:429:42 | x | stl.h:429:36:429:43 | constructor init of field first | TAINT | +| stl.h:429:42:429:42 | x | stl.h:429:36:429:43 | constructor init of field first | TAINT | +| stl.h:429:46:429:54 | call to unknown function | stl.h:429:46:429:54 | constructor init of field second | TAINT | +| stl.h:429:53:429:53 | y | stl.h:429:46:429:54 | constructor init of field second | TAINT | +| stl.h:429:53:429:53 | y | stl.h:429:46:429:54 | constructor init of field second | TAINT | +| stl.h:429:53:429:53 | y | stl.h:429:46:429:54 | constructor init of field second | TAINT | +| stl.h:429:53:429:53 | y | stl.h:429:46:429:54 | constructor init of field second | TAINT | +| stl.h:429:53:429:53 | y | stl.h:429:46:429:54 | constructor init of field second | TAINT | +| stl.h:429:53:429:53 | y | stl.h:429:46:429:54 | constructor init of field second | TAINT | +| stl.h:435:87:435:87 | x | stl.h:435:87:435:87 | x | | +| stl.h:435:87:435:87 | x | stl.h:435:87:435:87 | x | | +| stl.h:435:87:435:87 | x | stl.h:435:87:435:87 | x | | +| stl.h:435:87:435:87 | x | stl.h:435:87:435:87 | x | | +| stl.h:435:87:435:87 | x | stl.h:435:87:435:87 | x | | +| stl.h:435:87:435:87 | x | stl.h:435:87:435:87 | x | | +| stl.h:435:87:435:87 | x | stl.h:435:87:435:87 | x | | +| stl.h:435:87:435:87 | x | stl.h:436:58:436:58 | x | | +| stl.h:435:87:435:87 | x | stl.h:436:58:436:58 | x | | +| stl.h:435:87:435:87 | x | stl.h:436:58:436:58 | x | | +| stl.h:435:87:435:87 | x | stl.h:436:58:436:58 | x | | +| stl.h:435:87:435:87 | x | stl.h:436:58:436:58 | x | | +| stl.h:435:87:435:87 | x | stl.h:436:58:436:58 | x | | +| stl.h:435:87:435:87 | x | stl.h:436:58:436:58 | x | | +| stl.h:435:95:435:95 | y | stl.h:435:95:435:95 | y | | +| stl.h:435:95:435:95 | y | stl.h:435:95:435:95 | y | | +| stl.h:435:95:435:95 | y | stl.h:435:95:435:95 | y | | +| stl.h:435:95:435:95 | y | stl.h:435:95:435:95 | y | | +| stl.h:435:95:435:95 | y | stl.h:435:95:435:95 | y | | +| stl.h:435:95:435:95 | y | stl.h:435:95:435:95 | y | | +| stl.h:435:95:435:95 | y | stl.h:435:95:435:95 | y | | +| stl.h:435:95:435:95 | y | stl.h:436:79:436:79 | y | | +| stl.h:435:95:435:95 | y | stl.h:436:79:436:79 | y | | +| stl.h:435:95:435:95 | y | stl.h:436:79:436:79 | y | | +| stl.h:435:95:435:95 | y | stl.h:436:79:436:79 | y | | +| stl.h:435:95:435:95 | y | stl.h:436:79:436:79 | y | | +| stl.h:435:95:435:95 | y | stl.h:436:79:436:79 | y | | +| stl.h:435:95:435:95 | y | stl.h:436:79:436:79 | y | | +| stl.h:436:58:436:58 | x | stl.h:436:41:436:56 | call to forward | TAINT | +| stl.h:436:58:436:58 | x | stl.h:436:41:436:56 | call to forward | TAINT | +| stl.h:436:58:436:58 | x | stl.h:436:41:436:56 | call to forward | TAINT | +| stl.h:436:58:436:58 | x | stl.h:436:41:436:56 | call to forward | TAINT | +| stl.h:436:58:436:58 | x | stl.h:436:41:436:56 | call to forward | TAINT | +| stl.h:436:58:436:58 | x | stl.h:436:41:436:56 | call to forward | TAINT | +| stl.h:436:62:436:77 | call to forward | stl.h:436:3:436:82 | call to pair | TAINT | +| stl.h:436:62:436:77 | call to forward | stl.h:436:3:436:82 | call to pair | TAINT | +| stl.h:436:62:436:77 | call to forward | stl.h:436:3:436:82 | call to pair | TAINT | +| stl.h:436:62:436:77 | call to forward | stl.h:436:3:436:82 | call to pair | TAINT | +| stl.h:436:62:436:77 | call to forward | stl.h:436:3:436:82 | call to pair | TAINT | +| stl.h:436:62:436:77 | call to forward | stl.h:436:3:436:82 | call to pair | TAINT | +| stl.h:436:79:436:79 | y | stl.h:436:3:436:82 | call to pair | TAINT | +| stl.h:436:79:436:79 | y | stl.h:436:3:436:82 | call to pair | TAINT | +| stl.h:436:79:436:79 | y | stl.h:436:3:436:82 | call to pair | TAINT | +| stl.h:436:79:436:79 | y | stl.h:436:3:436:82 | call to pair | TAINT | +| stl.h:436:79:436:79 | y | stl.h:436:3:436:82 | call to pair | TAINT | +| stl.h:436:79:436:79 | y | stl.h:436:3:436:82 | call to pair | TAINT | +| stl.h:436:79:436:79 | y | stl.h:436:62:436:77 | call to forward | TAINT | +| stl.h:436:79:436:79 | y | stl.h:436:62:436:77 | call to forward | TAINT | +| stl.h:436:79:436:79 | y | stl.h:436:62:436:77 | call to forward | TAINT | +| stl.h:436:79:436:79 | y | stl.h:436:62:436:77 | call to forward | TAINT | +| stl.h:436:79:436:79 | y | stl.h:436:62:436:77 | call to forward | TAINT | +| stl.h:436:79:436:79 | y | stl.h:436:62:436:77 | call to forward | TAINT | +| string.cpp:26:12:26:17 | call to source | string.cpp:30:7:30:7 | a | | +| string.cpp:27:16:27:20 | 123 | string.cpp:27:16:27:21 | call to basic_string | TAINT | +| string.cpp:27:16:27:21 | call to basic_string | string.cpp:31:7:31:7 | b | | +| string.cpp:27:16:27:21 | call to basic_string | string.cpp:33:7:33:7 | b | | +| string.cpp:28:16:28:21 | call to source | string.cpp:28:16:28:24 | call to basic_string | TAINT | +| string.cpp:28:16:28:24 | call to basic_string | string.cpp:32:7:32:7 | c | | +| string.cpp:28:16:28:24 | call to basic_string | string.cpp:34:7:34:7 | c | | +| string.cpp:33:7:33:7 | b | string.cpp:33:9:33:13 | call to c_str | TAINT | +| string.cpp:34:7:34:7 | c | string.cpp:34:9:34:13 | call to c_str | TAINT | +| string.cpp:39:16:39:28 | call to basic_string | string.cpp:40:7:40:11 | path1 | | +| string.cpp:39:17:39:26 | call to user_input | string.cpp:39:16:39:28 | call to basic_string | TAINT | +| string.cpp:40:7:40:11 | path1 | string.cpp:40:13:40:17 | call to c_str | TAINT | +| string.cpp:43:10:43:19 | call to user_input | string.cpp:43:10:43:21 | call to basic_string | TAINT | +| string.cpp:43:10:43:21 | call to basic_string | string.cpp:43:2:43:21 | ... = ... | | +| string.cpp:43:10:43:21 | call to basic_string | string.cpp:44:7:44:11 | path2 | | +| string.cpp:44:7:44:11 | path2 | string.cpp:44:13:44:17 | call to c_str | TAINT | +| string.cpp:46:15:46:24 | call to user_input | string.cpp:46:15:46:27 | call to basic_string | TAINT | +| string.cpp:46:15:46:27 | call to basic_string | string.cpp:47:7:47:11 | path3 | | +| string.cpp:47:7:47:11 | path3 | string.cpp:47:13:47:17 | call to c_str | TAINT | +| string.cpp:52:19:52:24 | call to source | string.cpp:55:17:55:18 | cs | | +| string.cpp:52:19:52:24 | call to source | string.cpp:57:7:57:8 | cs | | +| string.cpp:55:17:55:18 | cs | string.cpp:55:17:55:19 | call to basic_string | TAINT | +| string.cpp:55:17:55:19 | call to basic_string | string.cpp:58:7:58:8 | ss | | +| string.cpp:63:19:63:24 | call to source | string.cpp:66:17:66:18 | cs | | +| string.cpp:66:17:66:18 | cs | string.cpp:66:17:66:19 | call to basic_string | TAINT | +| string.cpp:66:17:66:19 | call to basic_string | string.cpp:69:7:69:8 | ss | | +| string.cpp:66:17:66:19 | call to basic_string | string.cpp:72:7:72:8 | ss | | +| string.cpp:69:7:69:8 | ss | string.cpp:69:10:69:14 | call to c_str | TAINT | +| string.cpp:69:10:69:14 | call to c_str | string.cpp:69:2:69:16 | ... = ... | | +| string.cpp:69:10:69:14 | call to c_str | string.cpp:71:7:71:8 | cs | | +| string.cpp:78:18:78:24 | hello | string.cpp:78:18:78:25 | call to basic_string | TAINT | +| string.cpp:78:18:78:25 | call to basic_string | string.cpp:83:8:83:9 | s1 | | +| string.cpp:79:19:79:26 | call to basic_string | string.cpp:84:8:84:9 | s2 | | +| string.cpp:79:20:79:26 | hello | string.cpp:79:19:79:26 | call to basic_string | TAINT | +| string.cpp:81:8:81:14 | call to basic_string | string.cpp:81:3:81:14 | ... = ... | | +| string.cpp:81:8:81:14 | call to basic_string | string.cpp:85:8:85:9 | s3 | | +| string.cpp:81:8:81:14 | hello | string.cpp:81:8:81:14 | call to basic_string | TAINT | +| string.cpp:89:18:89:23 | call to source | string.cpp:89:18:89:26 | call to basic_string | TAINT | +| string.cpp:89:18:89:26 | call to basic_string | string.cpp:94:8:94:9 | s1 | | +| string.cpp:90:19:90:27 | call to basic_string | string.cpp:95:8:95:9 | s2 | | +| string.cpp:90:20:90:25 | call to source | string.cpp:90:19:90:27 | call to basic_string | TAINT | +| string.cpp:92:8:92:13 | call to source | string.cpp:92:8:92:15 | call to basic_string | TAINT | +| string.cpp:92:8:92:15 | call to basic_string | string.cpp:92:3:92:15 | ... = ... | | +| string.cpp:92:8:92:15 | call to basic_string | string.cpp:96:8:96:9 | s3 | | +| string.cpp:100:15:100:16 | call to basic_string | string.cpp:101:20:101:21 | s1 | | +| string.cpp:100:15:100:16 | call to basic_string | string.cpp:103:8:103:9 | s1 | | +| string.cpp:100:15:100:16 | call to basic_string | string.cpp:105:8:105:9 | s1 | | +| string.cpp:101:20:101:21 | s1 | string.cpp:106:8:106:9 | s2 | | +| string.cpp:103:8:103:9 | s1 | string.cpp:103:3:103:9 | ... = ... | | +| string.cpp:103:8:103:9 | s1 | string.cpp:107:8:107:9 | s3 | | +| string.cpp:111:19:111:40 | call to basic_string | string.cpp:115:8:115:9 | s1 | | +| string.cpp:111:32:111:37 | call to source | string.cpp:111:19:111:40 | call to basic_string | TAINT | +| string.cpp:113:8:113:28 | call to basic_string | string.cpp:113:3:113:28 | ... = ... | | +| string.cpp:113:8:113:28 | call to basic_string | string.cpp:116:8:116:9 | s2 | | +| string.cpp:113:20:113:25 | call to source | string.cpp:113:8:113:28 | call to basic_string | TAINT | +| string.cpp:121:16:121:21 | call to source | string.cpp:121:16:121:24 | call to basic_string | TAINT | +| string.cpp:121:16:121:24 | call to basic_string | string.cpp:122:15:122:15 | s | | +| string.cpp:121:16:121:24 | call to basic_string | string.cpp:126:33:126:33 | s | | +| string.cpp:121:16:121:24 | call to basic_string | string.cpp:126:50:126:50 | s | | +| string.cpp:121:16:121:24 | call to basic_string | string.cpp:130:16:130:16 | s | | +| string.cpp:122:15:122:15 | (__begin) | string.cpp:122:15:122:15 | call to operator* | TAINT | +| string.cpp:122:15:122:15 | (__begin) | string.cpp:122:15:122:15 | call to operator++ | | +| string.cpp:122:15:122:15 | (__end) | string.cpp:122:15:122:15 | call to iterator | | +| string.cpp:122:15:122:15 | (__range) | string.cpp:122:15:122:15 | call to begin | TAINT | +| string.cpp:122:15:122:15 | (__range) | string.cpp:122:15:122:15 | call to end | TAINT | +| string.cpp:122:15:122:15 | call to begin | string.cpp:122:15:122:15 | (__begin) | | +| string.cpp:122:15:122:15 | call to begin | string.cpp:122:15:122:15 | (__begin) | | +| string.cpp:122:15:122:15 | call to begin | string.cpp:122:15:122:15 | (__begin) | | +| string.cpp:122:15:122:15 | call to end | string.cpp:122:15:122:15 | (__end) | | +| string.cpp:122:15:122:15 | call to operator* | string.cpp:123:8:123:8 | c | | +| string.cpp:122:15:122:15 | ref arg (__begin) | string.cpp:122:15:122:15 | (__begin) | | +| string.cpp:122:15:122:15 | ref arg (__begin) | string.cpp:122:15:122:15 | (__begin) | | +| string.cpp:122:15:122:15 | ref arg (__begin) | string.cpp:122:15:122:15 | (__begin) | | +| string.cpp:122:15:122:15 | ref arg (__begin) | string.cpp:122:15:122:15 | (__begin) | | +| string.cpp:122:15:122:15 | ref arg (__begin) | string.cpp:122:15:122:15 | (__begin) | | +| string.cpp:122:15:122:15 | ref arg (__begin) | string.cpp:122:15:122:15 | (__begin) | | +| string.cpp:122:15:122:15 | ref arg (__range) | string.cpp:122:15:122:15 | (__range) | | +| string.cpp:122:15:122:15 | s | string.cpp:122:15:122:15 | (__range) | | +| string.cpp:122:15:122:15 | s | string.cpp:122:15:122:15 | (__range) | | +| string.cpp:122:15:122:15 | s | string.cpp:122:15:122:15 | call to operator* | TAINT | +| string.cpp:126:33:126:33 | ref arg s | string.cpp:126:50:126:50 | s | | +| string.cpp:126:33:126:33 | ref arg s | string.cpp:130:16:130:16 | s | | +| string.cpp:126:33:126:33 | s | string.cpp:126:35:126:39 | call to begin | TAINT | +| string.cpp:126:35:126:39 | call to begin | string.cpp:126:44:126:45 | it | | +| string.cpp:126:35:126:39 | call to begin | string.cpp:126:61:126:62 | it | | +| string.cpp:126:35:126:39 | call to begin | string.cpp:127:9:127:10 | it | | +| string.cpp:126:50:126:50 | ref arg s | string.cpp:126:50:126:50 | s | | +| string.cpp:126:50:126:50 | ref arg s | string.cpp:130:16:130:16 | s | | +| string.cpp:126:50:126:50 | s | string.cpp:126:52:126:54 | call to end | TAINT | +| string.cpp:126:61:126:62 | it | string.cpp:126:59:126:59 | call to operator++ | | +| string.cpp:126:61:126:62 | ref arg it | string.cpp:126:44:126:45 | it | | +| string.cpp:126:61:126:62 | ref arg it | string.cpp:126:61:126:62 | it | | +| string.cpp:126:61:126:62 | ref arg it | string.cpp:127:9:127:10 | it | | +| string.cpp:127:9:127:10 | it | string.cpp:127:8:127:8 | call to operator* | TAINT | +| string.cpp:127:9:127:10 | ref arg it | string.cpp:126:44:126:45 | it | | +| string.cpp:127:9:127:10 | ref arg it | string.cpp:126:61:126:62 | it | | +| string.cpp:127:9:127:10 | ref arg it | string.cpp:127:9:127:10 | it | | +| string.cpp:130:16:130:16 | (__begin) | string.cpp:130:16:130:16 | call to operator* | TAINT | +| string.cpp:130:16:130:16 | (__begin) | string.cpp:130:16:130:16 | call to operator++ | | +| string.cpp:130:16:130:16 | (__end) | string.cpp:130:16:130:16 | call to iterator | | +| string.cpp:130:16:130:16 | (__range) | string.cpp:130:16:130:16 | call to begin | TAINT | +| string.cpp:130:16:130:16 | (__range) | string.cpp:130:16:130:16 | call to end | TAINT | +| string.cpp:130:16:130:16 | call to begin | string.cpp:130:16:130:16 | (__begin) | | +| string.cpp:130:16:130:16 | call to begin | string.cpp:130:16:130:16 | (__begin) | | +| string.cpp:130:16:130:16 | call to begin | string.cpp:130:16:130:16 | (__begin) | | +| string.cpp:130:16:130:16 | call to end | string.cpp:130:16:130:16 | (__end) | | +| string.cpp:130:16:130:16 | call to operator* | string.cpp:131:8:131:8 | c | | +| string.cpp:130:16:130:16 | ref arg (__begin) | string.cpp:130:16:130:16 | (__begin) | | +| string.cpp:130:16:130:16 | ref arg (__begin) | string.cpp:130:16:130:16 | (__begin) | | +| string.cpp:130:16:130:16 | ref arg (__begin) | string.cpp:130:16:130:16 | (__begin) | | +| string.cpp:130:16:130:16 | ref arg (__begin) | string.cpp:130:16:130:16 | (__begin) | | +| string.cpp:130:16:130:16 | ref arg (__begin) | string.cpp:130:16:130:16 | (__begin) | | +| string.cpp:130:16:130:16 | ref arg (__begin) | string.cpp:130:16:130:16 | (__begin) | | +| string.cpp:130:16:130:16 | ref arg (__range) | string.cpp:130:16:130:16 | (__range) | | +| string.cpp:130:16:130:16 | s | string.cpp:130:16:130:16 | (__range) | | +| string.cpp:130:16:130:16 | s | string.cpp:130:16:130:16 | (__range) | | +| string.cpp:130:16:130:16 | s | string.cpp:130:16:130:16 | call to operator* | TAINT | +| string.cpp:134:28:134:33 | call to source | string.cpp:134:28:134:36 | call to basic_string | TAINT | +| string.cpp:134:28:134:36 | call to basic_string | string.cpp:135:22:135:28 | const_s | | +| string.cpp:135:22:135:22 | (__begin) | string.cpp:135:22:135:22 | call to operator* | TAINT | +| string.cpp:135:22:135:22 | (__begin) | string.cpp:135:22:135:22 | call to operator++ | | +| string.cpp:135:22:135:22 | (__range) | string.cpp:135:22:135:22 | call to begin | TAINT | +| string.cpp:135:22:135:22 | (__range) | string.cpp:135:22:135:22 | call to end | TAINT | +| string.cpp:135:22:135:22 | call to begin | string.cpp:135:22:135:22 | (__begin) | | +| string.cpp:135:22:135:22 | call to begin | string.cpp:135:22:135:22 | (__begin) | | +| string.cpp:135:22:135:22 | call to begin | string.cpp:135:22:135:22 | (__begin) | | +| string.cpp:135:22:135:22 | call to end | string.cpp:135:22:135:22 | (__end) | | +| string.cpp:135:22:135:22 | call to operator* | string.cpp:136:8:136:8 | c | | +| string.cpp:135:22:135:22 | ref arg (__begin) | string.cpp:135:22:135:22 | (__begin) | | +| string.cpp:135:22:135:22 | ref arg (__begin) | string.cpp:135:22:135:22 | (__begin) | | +| string.cpp:135:22:135:22 | ref arg (__begin) | string.cpp:135:22:135:22 | (__begin) | | +| string.cpp:135:22:135:28 | const_s | string.cpp:135:22:135:22 | (__range) | | +| string.cpp:135:22:135:28 | const_s | string.cpp:135:22:135:22 | (__range) | | +| string.cpp:135:22:135:28 | const_s | string.cpp:135:22:135:22 | call to operator* | TAINT | +| string.cpp:142:18:142:24 | hello | string.cpp:142:18:142:25 | call to basic_string | TAINT | +| string.cpp:142:18:142:25 | call to basic_string | string.cpp:145:8:145:9 | s1 | | +| string.cpp:142:18:142:25 | call to basic_string | string.cpp:145:13:145:14 | s1 | | +| string.cpp:142:18:142:25 | call to basic_string | string.cpp:146:8:146:9 | s1 | | +| string.cpp:142:18:142:25 | call to basic_string | string.cpp:147:13:147:14 | s1 | | +| string.cpp:142:18:142:25 | call to basic_string | string.cpp:150:8:150:9 | s1 | | +| string.cpp:142:18:142:25 | call to basic_string | string.cpp:151:8:151:9 | s1 | | +| string.cpp:143:18:143:23 | call to source | string.cpp:143:18:143:26 | call to basic_string | TAINT | +| string.cpp:143:18:143:26 | call to basic_string | string.cpp:146:13:146:14 | s2 | | +| string.cpp:143:18:143:26 | call to basic_string | string.cpp:147:8:147:9 | s2 | | +| string.cpp:143:18:143:26 | call to basic_string | string.cpp:148:8:148:9 | s2 | | +| string.cpp:143:18:143:26 | call to basic_string | string.cpp:148:13:148:14 | s2 | | | string.cpp:145:8:145:9 | s1 | string.cpp:145:11:145:11 | call to operator+ | TAINT | -| string.cpp:145:13:145:14 | s2 | string.cpp:145:11:145:11 | call to operator+ | TAINT | -| string.cpp:146:8:146:9 | s2 | string.cpp:146:11:146:11 | call to operator+ | TAINT | -| string.cpp:146:13:146:14 | s1 | string.cpp:146:11:146:11 | call to operator+ | TAINT | +| string.cpp:145:13:145:14 | s1 | string.cpp:145:11:145:11 | call to operator+ | TAINT | +| string.cpp:146:8:146:9 | s1 | string.cpp:146:11:146:11 | call to operator+ | TAINT | +| string.cpp:146:13:146:14 | s2 | string.cpp:146:11:146:11 | call to operator+ | TAINT | | string.cpp:147:8:147:9 | s2 | string.cpp:147:11:147:11 | call to operator+ | TAINT | -| string.cpp:147:13:147:14 | s2 | string.cpp:147:11:147:11 | call to operator+ | TAINT | -| string.cpp:149:8:149:9 | s1 | string.cpp:149:11:149:11 | call to operator+ | TAINT | -| string.cpp:149:13:149:20 | world | string.cpp:149:11:149:11 | call to operator+ | TAINT | +| string.cpp:147:13:147:14 | s1 | string.cpp:147:11:147:11 | call to operator+ | TAINT | +| string.cpp:148:8:148:9 | s2 | string.cpp:148:11:148:11 | call to operator+ | TAINT | +| string.cpp:148:13:148:14 | s2 | string.cpp:148:11:148:11 | call to operator+ | TAINT | | string.cpp:150:8:150:9 | s1 | string.cpp:150:11:150:11 | call to operator+ | TAINT | -| string.cpp:150:13:150:18 | call to source | string.cpp:150:11:150:11 | call to operator+ | TAINT | -| string.cpp:154:18:154:22 | abc | string.cpp:154:18:154:23 | call to basic_string | TAINT | -| string.cpp:154:18:154:23 | call to basic_string | string.cpp:158:8:158:9 | s3 | | -| string.cpp:154:18:154:23 | call to basic_string | string.cpp:161:8:161:9 | s3 | | -| string.cpp:154:18:154:23 | call to basic_string | string.cpp:165:8:165:9 | s3 | | -| string.cpp:154:18:154:23 | call to basic_string | string.cpp:170:8:170:9 | s3 | | -| string.cpp:154:18:154:23 | call to basic_string | string.cpp:174:8:174:9 | s3 | | -| string.cpp:155:18:155:23 | call to source | string.cpp:155:18:155:26 | call to basic_string | TAINT | -| string.cpp:155:18:155:26 | call to basic_string | string.cpp:158:13:158:14 | s4 | | -| string.cpp:155:18:155:26 | call to basic_string | string.cpp:162:14:162:15 | s4 | | -| string.cpp:155:18:155:26 | call to basic_string | string.cpp:171:13:171:14 | s4 | | -| string.cpp:158:8:158:9 | s3 | string.cpp:158:11:158:11 | call to operator+ | TAINT | -| string.cpp:158:11:158:11 | call to operator+ | string.cpp:158:3:158:14 | ... = ... | | -| string.cpp:158:11:158:11 | call to operator+ | string.cpp:159:8:159:9 | s5 | | -| string.cpp:158:13:158:14 | s4 | string.cpp:158:11:158:11 | call to operator+ | TAINT | -| string.cpp:161:8:161:9 | s3 | string.cpp:161:3:161:9 | ... = ... | | -| string.cpp:161:8:161:9 | s3 | string.cpp:162:8:162:9 | s6 | | -| string.cpp:161:8:161:9 | s3 | string.cpp:163:8:163:9 | s6 | | -| string.cpp:162:8:162:9 | ref arg s6 | string.cpp:163:8:163:9 | s6 | | -| string.cpp:162:8:162:9 | s6 | string.cpp:162:11:162:11 | call to operator+= | TAINT | -| string.cpp:162:14:162:15 | s4 | string.cpp:162:8:162:9 | ref arg s6 | TAINT | -| string.cpp:162:14:162:15 | s4 | string.cpp:162:11:162:11 | call to operator+= | TAINT | -| string.cpp:165:8:165:9 | s3 | string.cpp:165:3:165:9 | ... = ... | | -| string.cpp:165:8:165:9 | s3 | string.cpp:166:8:166:9 | s7 | | -| string.cpp:165:8:165:9 | s3 | string.cpp:167:8:167:9 | s7 | | -| string.cpp:165:8:165:9 | s3 | string.cpp:168:8:168:9 | s7 | | -| string.cpp:166:8:166:9 | ref arg s7 | string.cpp:167:8:167:9 | s7 | | -| string.cpp:166:8:166:9 | ref arg s7 | string.cpp:168:8:168:9 | s7 | | -| string.cpp:166:8:166:9 | s7 | string.cpp:166:11:166:11 | call to operator+= | TAINT | -| string.cpp:166:14:166:19 | call to source | string.cpp:166:8:166:9 | ref arg s7 | TAINT | -| string.cpp:166:14:166:19 | call to source | string.cpp:166:11:166:11 | call to operator+= | TAINT | +| string.cpp:150:13:150:20 | world | string.cpp:150:11:150:11 | call to operator+ | TAINT | +| string.cpp:151:8:151:9 | s1 | string.cpp:151:11:151:11 | call to operator+ | TAINT | +| string.cpp:151:13:151:18 | call to source | string.cpp:151:11:151:11 | call to operator+ | TAINT | +| string.cpp:155:18:155:22 | abc | string.cpp:155:18:155:23 | call to basic_string | TAINT | +| string.cpp:155:18:155:23 | call to basic_string | string.cpp:159:8:159:9 | s3 | | +| string.cpp:155:18:155:23 | call to basic_string | string.cpp:162:8:162:9 | s3 | | +| string.cpp:155:18:155:23 | call to basic_string | string.cpp:166:8:166:9 | s3 | | +| string.cpp:155:18:155:23 | call to basic_string | string.cpp:171:8:171:9 | s3 | | +| string.cpp:155:18:155:23 | call to basic_string | string.cpp:175:8:175:9 | s3 | | +| string.cpp:156:18:156:23 | call to source | string.cpp:156:18:156:26 | call to basic_string | TAINT | +| string.cpp:156:18:156:26 | call to basic_string | string.cpp:159:13:159:14 | s4 | | +| string.cpp:156:18:156:26 | call to basic_string | string.cpp:163:14:163:15 | s4 | | +| string.cpp:156:18:156:26 | call to basic_string | string.cpp:172:13:172:14 | s4 | | +| string.cpp:159:8:159:9 | s3 | string.cpp:159:11:159:11 | call to operator+ | TAINT | +| string.cpp:159:11:159:11 | call to operator+ | string.cpp:159:3:159:14 | ... = ... | | +| string.cpp:159:11:159:11 | call to operator+ | string.cpp:160:8:160:9 | s5 | | +| string.cpp:159:13:159:14 | s4 | string.cpp:159:11:159:11 | call to operator+ | TAINT | +| string.cpp:162:8:162:9 | s3 | string.cpp:162:3:162:9 | ... = ... | | +| string.cpp:162:8:162:9 | s3 | string.cpp:163:8:163:9 | s6 | | +| string.cpp:162:8:162:9 | s3 | string.cpp:164:8:164:9 | s6 | | +| string.cpp:163:8:163:9 | ref arg s6 | string.cpp:164:8:164:9 | s6 | | +| string.cpp:163:8:163:9 | s6 | string.cpp:163:11:163:11 | call to operator+= | TAINT | +| string.cpp:163:14:163:15 | s4 | string.cpp:163:8:163:9 | ref arg s6 | TAINT | +| string.cpp:163:14:163:15 | s4 | string.cpp:163:11:163:11 | call to operator+= | TAINT | +| string.cpp:166:8:166:9 | s3 | string.cpp:166:3:166:9 | ... = ... | | +| string.cpp:166:8:166:9 | s3 | string.cpp:167:8:167:9 | s7 | | +| string.cpp:166:8:166:9 | s3 | string.cpp:168:8:168:9 | s7 | | +| string.cpp:166:8:166:9 | s3 | string.cpp:169:8:169:9 | s7 | | | string.cpp:167:8:167:9 | ref arg s7 | string.cpp:168:8:168:9 | s7 | | +| string.cpp:167:8:167:9 | ref arg s7 | string.cpp:169:8:169:9 | s7 | | | string.cpp:167:8:167:9 | s7 | string.cpp:167:11:167:11 | call to operator+= | TAINT | -| string.cpp:167:14:167:16 | | string.cpp:167:8:167:9 | ref arg s7 | TAINT | -| string.cpp:167:14:167:16 | | string.cpp:167:11:167:11 | call to operator+= | TAINT | -| string.cpp:170:8:170:9 | s3 | string.cpp:170:3:170:9 | ... = ... | | -| string.cpp:170:8:170:9 | s3 | string.cpp:171:3:171:4 | s8 | | -| string.cpp:170:8:170:9 | s3 | string.cpp:172:8:172:9 | s8 | | -| string.cpp:171:3:171:4 | ref arg s8 | string.cpp:172:8:172:9 | s8 | | -| string.cpp:171:3:171:4 | s8 | string.cpp:171:6:171:11 | call to append | TAINT | -| string.cpp:171:13:171:14 | s4 | string.cpp:171:3:171:4 | ref arg s8 | TAINT | -| string.cpp:171:13:171:14 | s4 | string.cpp:171:6:171:11 | call to append | TAINT | -| string.cpp:174:8:174:9 | s3 | string.cpp:174:3:174:9 | ... = ... | | -| string.cpp:174:8:174:9 | s3 | string.cpp:175:3:175:4 | s9 | | -| string.cpp:174:8:174:9 | s3 | string.cpp:176:3:176:4 | s9 | | -| string.cpp:174:8:174:9 | s3 | string.cpp:177:8:177:9 | s9 | | -| string.cpp:175:3:175:4 | ref arg s9 | string.cpp:176:3:176:4 | s9 | | -| string.cpp:175:3:175:4 | ref arg s9 | string.cpp:177:8:177:9 | s9 | | -| string.cpp:175:3:175:4 | s9 | string.cpp:175:6:175:11 | call to append | TAINT | -| string.cpp:175:13:175:18 | call to source | string.cpp:175:3:175:4 | ref arg s9 | TAINT | -| string.cpp:175:13:175:18 | call to source | string.cpp:175:6:175:11 | call to append | TAINT | -| string.cpp:176:3:176:4 | ref arg s9 | string.cpp:177:8:177:9 | s9 | | +| string.cpp:167:14:167:19 | call to source | string.cpp:167:8:167:9 | ref arg s7 | TAINT | +| string.cpp:167:14:167:19 | call to source | string.cpp:167:11:167:11 | call to operator+= | TAINT | +| string.cpp:168:8:168:9 | ref arg s7 | string.cpp:169:8:169:9 | s7 | | +| string.cpp:168:8:168:9 | s7 | string.cpp:168:11:168:11 | call to operator+= | TAINT | +| string.cpp:168:14:168:16 | | string.cpp:168:8:168:9 | ref arg s7 | TAINT | +| string.cpp:168:14:168:16 | | string.cpp:168:11:168:11 | call to operator+= | TAINT | +| string.cpp:171:8:171:9 | s3 | string.cpp:171:3:171:9 | ... = ... | | +| string.cpp:171:8:171:9 | s3 | string.cpp:172:3:172:4 | s8 | | +| string.cpp:171:8:171:9 | s3 | string.cpp:173:8:173:9 | s8 | | +| string.cpp:172:3:172:4 | ref arg s8 | string.cpp:173:8:173:9 | s8 | | +| string.cpp:172:3:172:4 | s8 | string.cpp:172:6:172:11 | call to append | TAINT | +| string.cpp:172:13:172:14 | s4 | string.cpp:172:3:172:4 | ref arg s8 | TAINT | +| string.cpp:172:13:172:14 | s4 | string.cpp:172:6:172:11 | call to append | TAINT | +| string.cpp:175:8:175:9 | s3 | string.cpp:175:3:175:9 | ... = ... | | +| string.cpp:175:8:175:9 | s3 | string.cpp:176:3:176:4 | s9 | | +| string.cpp:175:8:175:9 | s3 | string.cpp:177:3:177:4 | s9 | | +| string.cpp:175:8:175:9 | s3 | string.cpp:178:8:178:9 | s9 | | +| string.cpp:176:3:176:4 | ref arg s9 | string.cpp:177:3:177:4 | s9 | | +| string.cpp:176:3:176:4 | ref arg s9 | string.cpp:178:8:178:9 | s9 | | | string.cpp:176:3:176:4 | s9 | string.cpp:176:6:176:11 | call to append | TAINT | -| string.cpp:176:13:176:15 | | string.cpp:176:3:176:4 | ref arg s9 | TAINT | -| string.cpp:176:13:176:15 | | string.cpp:176:6:176:11 | call to append | TAINT | -| string.cpp:181:19:181:23 | abc | string.cpp:181:19:181:24 | call to basic_string | TAINT | -| string.cpp:181:19:181:24 | call to basic_string | string.cpp:184:3:184:5 | s10 | | -| string.cpp:181:19:181:24 | call to basic_string | string.cpp:185:8:185:10 | s10 | | -| string.cpp:182:12:182:26 | call to source | string.cpp:184:17:184:17 | c | | -| string.cpp:184:3:184:5 | ref arg s10 | string.cpp:185:8:185:10 | s10 | | -| string.cpp:184:3:184:5 | s10 | string.cpp:184:7:184:12 | call to append | TAINT | -| string.cpp:184:17:184:17 | c | string.cpp:184:3:184:5 | ref arg s10 | TAINT | -| string.cpp:184:17:184:17 | c | string.cpp:184:7:184:12 | call to append | TAINT | -| string.cpp:190:17:190:23 | hello | string.cpp:190:17:190:24 | call to basic_string | TAINT | -| string.cpp:190:17:190:24 | call to basic_string | string.cpp:196:17:196:18 | s1 | | -| string.cpp:190:17:190:24 | call to basic_string | string.cpp:205:17:205:18 | s1 | | -| string.cpp:191:17:191:22 | call to source | string.cpp:191:17:191:25 | call to basic_string | TAINT | -| string.cpp:191:17:191:25 | call to basic_string | string.cpp:199:17:199:18 | s2 | | -| string.cpp:192:11:192:25 | call to source | string.cpp:202:21:202:21 | c | | -| string.cpp:193:14:193:15 | call to basic_string | string.cpp:196:7:196:8 | s3 | | -| string.cpp:193:14:193:15 | call to basic_string | string.cpp:197:7:197:8 | s3 | | -| string.cpp:193:18:193:19 | call to basic_string | string.cpp:199:7:199:8 | s4 | | -| string.cpp:193:18:193:19 | call to basic_string | string.cpp:200:7:200:8 | s4 | | -| string.cpp:193:22:193:23 | call to basic_string | string.cpp:202:7:202:8 | s5 | | -| string.cpp:193:22:193:23 | call to basic_string | string.cpp:203:7:203:8 | s5 | | -| string.cpp:194:17:194:22 | call to source | string.cpp:194:17:194:25 | call to basic_string | TAINT | -| string.cpp:194:17:194:25 | call to basic_string | string.cpp:205:7:205:8 | s6 | | -| string.cpp:194:17:194:25 | call to basic_string | string.cpp:206:7:206:8 | s6 | | -| string.cpp:196:7:196:8 | ref arg s3 | string.cpp:197:7:197:8 | s3 | | -| string.cpp:196:17:196:18 | s1 | string.cpp:196:7:196:8 | ref arg s3 | TAINT | -| string.cpp:196:17:196:18 | s1 | string.cpp:196:10:196:15 | call to assign | TAINT | -| string.cpp:199:7:199:8 | ref arg s4 | string.cpp:200:7:200:8 | s4 | | -| string.cpp:199:17:199:18 | s2 | string.cpp:199:7:199:8 | ref arg s4 | TAINT | -| string.cpp:199:17:199:18 | s2 | string.cpp:199:10:199:15 | call to assign | TAINT | -| string.cpp:202:7:202:8 | ref arg s5 | string.cpp:203:7:203:8 | s5 | | -| string.cpp:202:21:202:21 | c | string.cpp:202:7:202:8 | ref arg s5 | TAINT | -| string.cpp:202:21:202:21 | c | string.cpp:202:10:202:15 | call to assign | TAINT | -| string.cpp:205:7:205:8 | ref arg s6 | string.cpp:206:7:206:8 | s6 | | -| string.cpp:205:17:205:18 | s1 | string.cpp:205:7:205:8 | ref arg s6 | TAINT | -| string.cpp:205:17:205:18 | s1 | string.cpp:205:10:205:15 | call to assign | TAINT | -| string.cpp:210:17:210:23 | hello | string.cpp:210:17:210:24 | call to basic_string | TAINT | -| string.cpp:210:17:210:24 | call to basic_string | string.cpp:215:7:215:8 | s1 | | -| string.cpp:210:17:210:24 | call to basic_string | string.cpp:216:20:216:21 | s1 | | -| string.cpp:210:17:210:24 | call to basic_string | string.cpp:220:20:220:21 | s1 | | -| string.cpp:210:17:210:24 | call to basic_string | string.cpp:223:7:223:8 | s1 | | -| string.cpp:210:17:210:24 | call to basic_string | string.cpp:227:7:227:8 | s1 | | -| string.cpp:211:17:211:22 | call to source | string.cpp:211:17:211:25 | call to basic_string | TAINT | -| string.cpp:211:17:211:25 | call to basic_string | string.cpp:219:7:219:8 | s2 | | -| string.cpp:211:17:211:25 | call to basic_string | string.cpp:224:20:224:21 | s2 | | -| string.cpp:212:11:212:25 | call to source | string.cpp:228:24:228:24 | c | | -| string.cpp:215:7:215:8 | s1 | string.cpp:215:2:215:8 | ... = ... | | -| string.cpp:215:7:215:8 | s1 | string.cpp:216:7:216:8 | s3 | | -| string.cpp:215:7:215:8 | s1 | string.cpp:217:7:217:8 | s3 | | -| string.cpp:216:7:216:8 | ref arg s3 | string.cpp:217:7:217:8 | s3 | | -| string.cpp:216:7:216:8 | s3 | string.cpp:216:10:216:15 | call to insert | TAINT | -| string.cpp:216:20:216:21 | s1 | string.cpp:216:7:216:8 | ref arg s3 | TAINT | -| string.cpp:216:20:216:21 | s1 | string.cpp:216:10:216:15 | call to insert | TAINT | -| string.cpp:219:7:219:8 | s2 | string.cpp:219:2:219:8 | ... = ... | | -| string.cpp:219:7:219:8 | s2 | string.cpp:220:7:220:8 | s4 | | -| string.cpp:219:7:219:8 | s2 | string.cpp:221:7:221:8 | s4 | | -| string.cpp:220:7:220:8 | ref arg s4 | string.cpp:221:7:221:8 | s4 | | -| string.cpp:220:7:220:8 | s4 | string.cpp:220:10:220:15 | call to insert | TAINT | -| string.cpp:220:20:220:21 | s1 | string.cpp:220:7:220:8 | ref arg s4 | TAINT | -| string.cpp:220:20:220:21 | s1 | string.cpp:220:10:220:15 | call to insert | TAINT | -| string.cpp:223:7:223:8 | s1 | string.cpp:223:2:223:8 | ... = ... | | -| string.cpp:223:7:223:8 | s1 | string.cpp:224:7:224:8 | s5 | | -| string.cpp:223:7:223:8 | s1 | string.cpp:225:7:225:8 | s5 | | -| string.cpp:224:7:224:8 | ref arg s5 | string.cpp:225:7:225:8 | s5 | | -| string.cpp:224:7:224:8 | s5 | string.cpp:224:10:224:15 | call to insert | TAINT | -| string.cpp:224:20:224:21 | s2 | string.cpp:224:7:224:8 | ref arg s5 | TAINT | -| string.cpp:224:20:224:21 | s2 | string.cpp:224:10:224:15 | call to insert | TAINT | -| string.cpp:227:7:227:8 | s1 | string.cpp:227:2:227:8 | ... = ... | | -| string.cpp:227:7:227:8 | s1 | string.cpp:228:7:228:8 | s6 | | -| string.cpp:227:7:227:8 | s1 | string.cpp:229:7:229:8 | s6 | | -| string.cpp:228:7:228:8 | ref arg s6 | string.cpp:229:7:229:8 | s6 | | -| string.cpp:228:7:228:8 | s6 | string.cpp:228:10:228:15 | call to insert | TAINT | -| string.cpp:228:24:228:24 | c | string.cpp:228:7:228:8 | ref arg s6 | TAINT | -| string.cpp:228:24:228:24 | c | string.cpp:228:10:228:15 | call to insert | TAINT | -| string.cpp:233:17:233:23 | hello | string.cpp:233:17:233:24 | call to basic_string | TAINT | -| string.cpp:233:17:233:24 | call to basic_string | string.cpp:238:7:238:8 | s1 | | -| string.cpp:233:17:233:24 | call to basic_string | string.cpp:239:24:239:25 | s1 | | -| string.cpp:233:17:233:24 | call to basic_string | string.cpp:243:24:243:25 | s1 | | -| string.cpp:233:17:233:24 | call to basic_string | string.cpp:246:7:246:8 | s1 | | -| string.cpp:233:17:233:24 | call to basic_string | string.cpp:250:7:250:8 | s1 | | -| string.cpp:234:17:234:22 | call to source | string.cpp:234:17:234:25 | call to basic_string | TAINT | -| string.cpp:234:17:234:25 | call to basic_string | string.cpp:242:7:242:8 | s2 | | -| string.cpp:234:17:234:25 | call to basic_string | string.cpp:247:24:247:25 | s2 | | -| string.cpp:235:11:235:25 | call to source | string.cpp:251:28:251:28 | c | | -| string.cpp:238:7:238:8 | s1 | string.cpp:238:2:238:8 | ... = ... | | -| string.cpp:238:7:238:8 | s1 | string.cpp:239:7:239:8 | s3 | | -| string.cpp:238:7:238:8 | s1 | string.cpp:240:7:240:8 | s3 | | -| string.cpp:239:7:239:8 | ref arg s3 | string.cpp:240:7:240:8 | s3 | | -| string.cpp:239:7:239:8 | s3 | string.cpp:239:10:239:16 | call to replace | TAINT | -| string.cpp:239:24:239:25 | s1 | string.cpp:239:7:239:8 | ref arg s3 | TAINT | -| string.cpp:239:24:239:25 | s1 | string.cpp:239:10:239:16 | call to replace | TAINT | -| string.cpp:242:7:242:8 | s2 | string.cpp:242:2:242:8 | ... = ... | | -| string.cpp:242:7:242:8 | s2 | string.cpp:243:7:243:8 | s4 | | -| string.cpp:242:7:242:8 | s2 | string.cpp:244:7:244:8 | s4 | | -| string.cpp:243:7:243:8 | ref arg s4 | string.cpp:244:7:244:8 | s4 | | -| string.cpp:243:7:243:8 | s4 | string.cpp:243:10:243:16 | call to replace | TAINT | -| string.cpp:243:24:243:25 | s1 | string.cpp:243:7:243:8 | ref arg s4 | TAINT | -| string.cpp:243:24:243:25 | s1 | string.cpp:243:10:243:16 | call to replace | TAINT | -| string.cpp:246:7:246:8 | s1 | string.cpp:246:2:246:8 | ... = ... | | -| string.cpp:246:7:246:8 | s1 | string.cpp:247:7:247:8 | s5 | | -| string.cpp:246:7:246:8 | s1 | string.cpp:248:7:248:8 | s5 | | -| string.cpp:247:7:247:8 | ref arg s5 | string.cpp:248:7:248:8 | s5 | | -| string.cpp:247:7:247:8 | s5 | string.cpp:247:10:247:16 | call to replace | TAINT | -| string.cpp:247:24:247:25 | s2 | string.cpp:247:7:247:8 | ref arg s5 | TAINT | -| string.cpp:247:24:247:25 | s2 | string.cpp:247:10:247:16 | call to replace | TAINT | -| string.cpp:250:7:250:8 | s1 | string.cpp:250:2:250:8 | ... = ... | | -| string.cpp:250:7:250:8 | s1 | string.cpp:251:7:251:8 | s6 | | -| string.cpp:250:7:250:8 | s1 | string.cpp:252:7:252:8 | s6 | | -| string.cpp:251:7:251:8 | ref arg s6 | string.cpp:252:7:252:8 | s6 | | -| string.cpp:251:7:251:8 | s6 | string.cpp:251:10:251:16 | call to replace | TAINT | -| string.cpp:251:28:251:28 | c | string.cpp:251:7:251:8 | ref arg s6 | TAINT | -| string.cpp:251:28:251:28 | c | string.cpp:251:10:251:16 | call to replace | TAINT | -| string.cpp:256:17:256:20 | {...} | string.cpp:261:10:261:11 | b1 | | -| string.cpp:256:17:256:20 | {...} | string.cpp:262:7:262:8 | b1 | | -| string.cpp:256:19:256:19 | 0 | string.cpp:256:17:256:20 | {...} | TAINT | -| string.cpp:257:17:257:20 | {...} | string.cpp:264:10:264:11 | b2 | | -| string.cpp:257:17:257:20 | {...} | string.cpp:265:7:265:8 | b2 | | +| string.cpp:176:13:176:18 | call to source | string.cpp:176:3:176:4 | ref arg s9 | TAINT | +| string.cpp:176:13:176:18 | call to source | string.cpp:176:6:176:11 | call to append | TAINT | +| string.cpp:177:3:177:4 | ref arg s9 | string.cpp:178:8:178:9 | s9 | | +| string.cpp:177:3:177:4 | s9 | string.cpp:177:6:177:11 | call to append | TAINT | +| string.cpp:177:13:177:15 | | string.cpp:177:3:177:4 | ref arg s9 | TAINT | +| string.cpp:177:13:177:15 | | string.cpp:177:6:177:11 | call to append | TAINT | +| string.cpp:182:19:182:23 | abc | string.cpp:182:19:182:24 | call to basic_string | TAINT | +| string.cpp:182:19:182:24 | call to basic_string | string.cpp:185:3:185:5 | s10 | | +| string.cpp:182:19:182:24 | call to basic_string | string.cpp:186:8:186:10 | s10 | | +| string.cpp:183:12:183:26 | call to source | string.cpp:185:17:185:17 | c | | +| string.cpp:185:3:185:5 | ref arg s10 | string.cpp:186:8:186:10 | s10 | | +| string.cpp:185:3:185:5 | s10 | string.cpp:185:7:185:12 | call to append | TAINT | +| string.cpp:185:17:185:17 | c | string.cpp:185:3:185:5 | ref arg s10 | TAINT | +| string.cpp:185:17:185:17 | c | string.cpp:185:7:185:12 | call to append | TAINT | +| string.cpp:191:17:191:23 | hello | string.cpp:191:17:191:24 | call to basic_string | TAINT | +| string.cpp:191:17:191:24 | call to basic_string | string.cpp:197:17:197:18 | s1 | | +| string.cpp:191:17:191:24 | call to basic_string | string.cpp:206:17:206:18 | s1 | | +| string.cpp:192:17:192:22 | call to source | string.cpp:192:17:192:25 | call to basic_string | TAINT | +| string.cpp:192:17:192:25 | call to basic_string | string.cpp:200:17:200:18 | s2 | | +| string.cpp:193:11:193:25 | call to source | string.cpp:203:21:203:21 | c | | +| string.cpp:194:14:194:15 | call to basic_string | string.cpp:197:7:197:8 | s3 | | +| string.cpp:194:14:194:15 | call to basic_string | string.cpp:198:7:198:8 | s3 | | +| string.cpp:194:18:194:19 | call to basic_string | string.cpp:200:7:200:8 | s4 | | +| string.cpp:194:18:194:19 | call to basic_string | string.cpp:201:7:201:8 | s4 | | +| string.cpp:194:22:194:23 | call to basic_string | string.cpp:203:7:203:8 | s5 | | +| string.cpp:194:22:194:23 | call to basic_string | string.cpp:204:7:204:8 | s5 | | +| string.cpp:195:17:195:22 | call to source | string.cpp:195:17:195:25 | call to basic_string | TAINT | +| string.cpp:195:17:195:25 | call to basic_string | string.cpp:206:7:206:8 | s6 | | +| string.cpp:195:17:195:25 | call to basic_string | string.cpp:207:7:207:8 | s6 | | +| string.cpp:197:7:197:8 | ref arg s3 | string.cpp:198:7:198:8 | s3 | | +| string.cpp:197:17:197:18 | s1 | string.cpp:197:7:197:8 | ref arg s3 | TAINT | +| string.cpp:197:17:197:18 | s1 | string.cpp:197:10:197:15 | call to assign | TAINT | +| string.cpp:200:7:200:8 | ref arg s4 | string.cpp:201:7:201:8 | s4 | | +| string.cpp:200:17:200:18 | s2 | string.cpp:200:7:200:8 | ref arg s4 | TAINT | +| string.cpp:200:17:200:18 | s2 | string.cpp:200:10:200:15 | call to assign | TAINT | +| string.cpp:203:7:203:8 | ref arg s5 | string.cpp:204:7:204:8 | s5 | | +| string.cpp:203:21:203:21 | c | string.cpp:203:7:203:8 | ref arg s5 | TAINT | +| string.cpp:203:21:203:21 | c | string.cpp:203:10:203:15 | call to assign | TAINT | +| string.cpp:206:7:206:8 | ref arg s6 | string.cpp:207:7:207:8 | s6 | | +| string.cpp:206:17:206:18 | s1 | string.cpp:206:7:206:8 | ref arg s6 | TAINT | +| string.cpp:206:17:206:18 | s1 | string.cpp:206:10:206:15 | call to assign | TAINT | +| string.cpp:211:17:211:23 | hello | string.cpp:211:17:211:24 | call to basic_string | TAINT | +| string.cpp:211:17:211:24 | call to basic_string | string.cpp:216:7:216:8 | s1 | | +| string.cpp:211:17:211:24 | call to basic_string | string.cpp:217:20:217:21 | s1 | | +| string.cpp:211:17:211:24 | call to basic_string | string.cpp:221:20:221:21 | s1 | | +| string.cpp:211:17:211:24 | call to basic_string | string.cpp:224:7:224:8 | s1 | | +| string.cpp:211:17:211:24 | call to basic_string | string.cpp:228:7:228:8 | s1 | | +| string.cpp:212:17:212:22 | call to source | string.cpp:212:17:212:25 | call to basic_string | TAINT | +| string.cpp:212:17:212:25 | call to basic_string | string.cpp:220:7:220:8 | s2 | | +| string.cpp:212:17:212:25 | call to basic_string | string.cpp:225:20:225:21 | s2 | | +| string.cpp:213:11:213:25 | call to source | string.cpp:229:24:229:24 | c | | +| string.cpp:216:7:216:8 | s1 | string.cpp:216:2:216:8 | ... = ... | | +| string.cpp:216:7:216:8 | s1 | string.cpp:217:7:217:8 | s3 | | +| string.cpp:216:7:216:8 | s1 | string.cpp:218:7:218:8 | s3 | | +| string.cpp:217:7:217:8 | ref arg s3 | string.cpp:218:7:218:8 | s3 | | +| string.cpp:217:7:217:8 | s3 | string.cpp:217:10:217:15 | call to insert | TAINT | +| string.cpp:217:20:217:21 | s1 | string.cpp:217:7:217:8 | ref arg s3 | TAINT | +| string.cpp:217:20:217:21 | s1 | string.cpp:217:10:217:15 | call to insert | TAINT | +| string.cpp:220:7:220:8 | s2 | string.cpp:220:2:220:8 | ... = ... | | +| string.cpp:220:7:220:8 | s2 | string.cpp:221:7:221:8 | s4 | | +| string.cpp:220:7:220:8 | s2 | string.cpp:222:7:222:8 | s4 | | +| string.cpp:221:7:221:8 | ref arg s4 | string.cpp:222:7:222:8 | s4 | | +| string.cpp:221:7:221:8 | s4 | string.cpp:221:10:221:15 | call to insert | TAINT | +| string.cpp:221:20:221:21 | s1 | string.cpp:221:7:221:8 | ref arg s4 | TAINT | +| string.cpp:221:20:221:21 | s1 | string.cpp:221:10:221:15 | call to insert | TAINT | +| string.cpp:224:7:224:8 | s1 | string.cpp:224:2:224:8 | ... = ... | | +| string.cpp:224:7:224:8 | s1 | string.cpp:225:7:225:8 | s5 | | +| string.cpp:224:7:224:8 | s1 | string.cpp:226:7:226:8 | s5 | | +| string.cpp:225:7:225:8 | ref arg s5 | string.cpp:226:7:226:8 | s5 | | +| string.cpp:225:7:225:8 | s5 | string.cpp:225:10:225:15 | call to insert | TAINT | +| string.cpp:225:20:225:21 | s2 | string.cpp:225:7:225:8 | ref arg s5 | TAINT | +| string.cpp:225:20:225:21 | s2 | string.cpp:225:10:225:15 | call to insert | TAINT | +| string.cpp:228:7:228:8 | s1 | string.cpp:228:2:228:8 | ... = ... | | +| string.cpp:228:7:228:8 | s1 | string.cpp:229:7:229:8 | s6 | | +| string.cpp:228:7:228:8 | s1 | string.cpp:230:7:230:8 | s6 | | +| string.cpp:229:7:229:8 | ref arg s6 | string.cpp:230:7:230:8 | s6 | | +| string.cpp:229:7:229:8 | s6 | string.cpp:229:10:229:15 | call to insert | TAINT | +| string.cpp:229:24:229:24 | c | string.cpp:229:7:229:8 | ref arg s6 | TAINT | +| string.cpp:229:24:229:24 | c | string.cpp:229:10:229:15 | call to insert | TAINT | +| string.cpp:234:17:234:23 | hello | string.cpp:234:17:234:24 | call to basic_string | TAINT | +| string.cpp:234:17:234:24 | call to basic_string | string.cpp:239:7:239:8 | s1 | | +| string.cpp:234:17:234:24 | call to basic_string | string.cpp:240:24:240:25 | s1 | | +| string.cpp:234:17:234:24 | call to basic_string | string.cpp:244:24:244:25 | s1 | | +| string.cpp:234:17:234:24 | call to basic_string | string.cpp:247:7:247:8 | s1 | | +| string.cpp:234:17:234:24 | call to basic_string | string.cpp:251:7:251:8 | s1 | | +| string.cpp:235:17:235:22 | call to source | string.cpp:235:17:235:25 | call to basic_string | TAINT | +| string.cpp:235:17:235:25 | call to basic_string | string.cpp:243:7:243:8 | s2 | | +| string.cpp:235:17:235:25 | call to basic_string | string.cpp:248:24:248:25 | s2 | | +| string.cpp:236:11:236:25 | call to source | string.cpp:252:28:252:28 | c | | +| string.cpp:239:7:239:8 | s1 | string.cpp:239:2:239:8 | ... = ... | | +| string.cpp:239:7:239:8 | s1 | string.cpp:240:7:240:8 | s3 | | +| string.cpp:239:7:239:8 | s1 | string.cpp:241:7:241:8 | s3 | | +| string.cpp:240:7:240:8 | ref arg s3 | string.cpp:241:7:241:8 | s3 | | +| string.cpp:240:7:240:8 | s3 | string.cpp:240:10:240:16 | call to replace | TAINT | +| string.cpp:240:24:240:25 | s1 | string.cpp:240:7:240:8 | ref arg s3 | TAINT | +| string.cpp:240:24:240:25 | s1 | string.cpp:240:10:240:16 | call to replace | TAINT | +| string.cpp:243:7:243:8 | s2 | string.cpp:243:2:243:8 | ... = ... | | +| string.cpp:243:7:243:8 | s2 | string.cpp:244:7:244:8 | s4 | | +| string.cpp:243:7:243:8 | s2 | string.cpp:245:7:245:8 | s4 | | +| string.cpp:244:7:244:8 | ref arg s4 | string.cpp:245:7:245:8 | s4 | | +| string.cpp:244:7:244:8 | s4 | string.cpp:244:10:244:16 | call to replace | TAINT | +| string.cpp:244:24:244:25 | s1 | string.cpp:244:7:244:8 | ref arg s4 | TAINT | +| string.cpp:244:24:244:25 | s1 | string.cpp:244:10:244:16 | call to replace | TAINT | +| string.cpp:247:7:247:8 | s1 | string.cpp:247:2:247:8 | ... = ... | | +| string.cpp:247:7:247:8 | s1 | string.cpp:248:7:248:8 | s5 | | +| string.cpp:247:7:247:8 | s1 | string.cpp:249:7:249:8 | s5 | | +| string.cpp:248:7:248:8 | ref arg s5 | string.cpp:249:7:249:8 | s5 | | +| string.cpp:248:7:248:8 | s5 | string.cpp:248:10:248:16 | call to replace | TAINT | +| string.cpp:248:24:248:25 | s2 | string.cpp:248:7:248:8 | ref arg s5 | TAINT | +| string.cpp:248:24:248:25 | s2 | string.cpp:248:10:248:16 | call to replace | TAINT | +| string.cpp:251:7:251:8 | s1 | string.cpp:251:2:251:8 | ... = ... | | +| string.cpp:251:7:251:8 | s1 | string.cpp:252:7:252:8 | s6 | | +| string.cpp:251:7:251:8 | s1 | string.cpp:253:7:253:8 | s6 | | +| string.cpp:252:7:252:8 | ref arg s6 | string.cpp:253:7:253:8 | s6 | | +| string.cpp:252:7:252:8 | s6 | string.cpp:252:10:252:16 | call to replace | TAINT | +| string.cpp:252:28:252:28 | c | string.cpp:252:7:252:8 | ref arg s6 | TAINT | +| string.cpp:252:28:252:28 | c | string.cpp:252:10:252:16 | call to replace | TAINT | +| string.cpp:257:17:257:20 | {...} | string.cpp:262:10:262:11 | b1 | | +| string.cpp:257:17:257:20 | {...} | string.cpp:263:7:263:8 | b1 | | | string.cpp:257:19:257:19 | 0 | string.cpp:257:17:257:20 | {...} | TAINT | -| string.cpp:258:17:258:23 | hello | string.cpp:258:17:258:24 | call to basic_string | TAINT | -| string.cpp:258:17:258:24 | call to basic_string | string.cpp:261:2:261:3 | s1 | | -| string.cpp:258:17:258:24 | call to basic_string | string.cpp:261:14:261:15 | s1 | | -| string.cpp:258:17:258:24 | call to basic_string | string.cpp:264:14:264:15 | s1 | | -| string.cpp:259:17:259:22 | call to source | string.cpp:259:17:259:25 | call to basic_string | TAINT | -| string.cpp:259:17:259:25 | call to basic_string | string.cpp:264:2:264:3 | s2 | | -| string.cpp:261:2:261:3 | s1 | string.cpp:261:10:261:11 | ref arg b1 | TAINT | -| string.cpp:261:10:261:11 | ref arg b1 | string.cpp:262:7:262:8 | b1 | | -| string.cpp:264:2:264:3 | s2 | string.cpp:264:10:264:11 | ref arg b2 | TAINT | -| string.cpp:264:10:264:11 | ref arg b2 | string.cpp:265:7:265:8 | b2 | | -| string.cpp:269:17:269:23 | hello | string.cpp:269:17:269:24 | call to basic_string | TAINT | -| string.cpp:269:17:269:24 | call to basic_string | string.cpp:274:7:274:8 | s1 | | -| string.cpp:269:17:269:24 | call to basic_string | string.cpp:279:2:279:3 | s1 | | -| string.cpp:269:17:269:24 | call to basic_string | string.cpp:282:7:282:8 | s1 | | -| string.cpp:270:17:270:22 | call to source | string.cpp:270:17:270:25 | call to basic_string | TAINT | -| string.cpp:270:17:270:25 | call to basic_string | string.cpp:275:7:275:8 | s2 | | -| string.cpp:270:17:270:25 | call to basic_string | string.cpp:279:10:279:11 | s2 | | -| string.cpp:270:17:270:25 | call to basic_string | string.cpp:283:7:283:8 | s2 | | -| string.cpp:271:17:271:23 | world | string.cpp:271:17:271:24 | call to basic_string | TAINT | -| string.cpp:271:17:271:24 | call to basic_string | string.cpp:276:7:276:8 | s3 | | -| string.cpp:271:17:271:24 | call to basic_string | string.cpp:280:10:280:11 | s3 | | -| string.cpp:271:17:271:24 | call to basic_string | string.cpp:284:7:284:8 | s3 | | -| string.cpp:272:17:272:22 | call to source | string.cpp:272:17:272:25 | call to basic_string | TAINT | -| string.cpp:272:17:272:25 | call to basic_string | string.cpp:277:7:277:8 | s4 | | -| string.cpp:272:17:272:25 | call to basic_string | string.cpp:280:2:280:3 | s4 | | -| string.cpp:272:17:272:25 | call to basic_string | string.cpp:285:7:285:8 | s4 | | -| string.cpp:279:2:279:3 | ref arg s1 | string.cpp:282:7:282:8 | s1 | | -| string.cpp:279:10:279:11 | ref arg s2 | string.cpp:283:7:283:8 | s2 | | -| string.cpp:280:2:280:3 | ref arg s4 | string.cpp:285:7:285:8 | s4 | | -| string.cpp:280:10:280:11 | ref arg s3 | string.cpp:284:7:284:8 | s3 | | -| string.cpp:289:17:289:22 | call to source | string.cpp:289:17:289:25 | call to basic_string | TAINT | -| string.cpp:289:17:289:25 | call to basic_string | string.cpp:293:7:293:8 | s1 | | -| string.cpp:289:17:289:25 | call to basic_string | string.cpp:297:2:297:3 | s1 | | -| string.cpp:289:17:289:25 | call to basic_string | string.cpp:301:7:301:8 | s1 | | +| string.cpp:258:17:258:20 | {...} | string.cpp:265:10:265:11 | b2 | | +| string.cpp:258:17:258:20 | {...} | string.cpp:266:7:266:8 | b2 | | +| string.cpp:258:19:258:19 | 0 | string.cpp:258:17:258:20 | {...} | TAINT | +| string.cpp:259:17:259:23 | hello | string.cpp:259:17:259:24 | call to basic_string | TAINT | +| string.cpp:259:17:259:24 | call to basic_string | string.cpp:262:2:262:3 | s1 | | +| string.cpp:259:17:259:24 | call to basic_string | string.cpp:262:14:262:15 | s1 | | +| string.cpp:259:17:259:24 | call to basic_string | string.cpp:265:14:265:15 | s1 | | +| string.cpp:260:17:260:22 | call to source | string.cpp:260:17:260:25 | call to basic_string | TAINT | +| string.cpp:260:17:260:25 | call to basic_string | string.cpp:265:2:265:3 | s2 | | +| string.cpp:262:2:262:3 | s1 | string.cpp:262:10:262:11 | ref arg b1 | TAINT | +| string.cpp:262:10:262:11 | ref arg b1 | string.cpp:263:7:263:8 | b1 | | +| string.cpp:265:2:265:3 | s2 | string.cpp:265:10:265:11 | ref arg b2 | TAINT | +| string.cpp:265:10:265:11 | ref arg b2 | string.cpp:266:7:266:8 | b2 | | +| string.cpp:270:17:270:23 | hello | string.cpp:270:17:270:24 | call to basic_string | TAINT | +| string.cpp:270:17:270:24 | call to basic_string | string.cpp:275:7:275:8 | s1 | | +| string.cpp:270:17:270:24 | call to basic_string | string.cpp:280:2:280:3 | s1 | | +| string.cpp:270:17:270:24 | call to basic_string | string.cpp:283:7:283:8 | s1 | | +| string.cpp:271:17:271:22 | call to source | string.cpp:271:17:271:25 | call to basic_string | TAINT | +| string.cpp:271:17:271:25 | call to basic_string | string.cpp:276:7:276:8 | s2 | | +| string.cpp:271:17:271:25 | call to basic_string | string.cpp:280:10:280:11 | s2 | | +| string.cpp:271:17:271:25 | call to basic_string | string.cpp:284:7:284:8 | s2 | | +| string.cpp:272:17:272:23 | world | string.cpp:272:17:272:24 | call to basic_string | TAINT | +| string.cpp:272:17:272:24 | call to basic_string | string.cpp:277:7:277:8 | s3 | | +| string.cpp:272:17:272:24 | call to basic_string | string.cpp:281:10:281:11 | s3 | | +| string.cpp:272:17:272:24 | call to basic_string | string.cpp:285:7:285:8 | s3 | | +| string.cpp:273:17:273:22 | call to source | string.cpp:273:17:273:25 | call to basic_string | TAINT | +| string.cpp:273:17:273:25 | call to basic_string | string.cpp:278:7:278:8 | s4 | | +| string.cpp:273:17:273:25 | call to basic_string | string.cpp:281:2:281:3 | s4 | | +| string.cpp:273:17:273:25 | call to basic_string | string.cpp:286:7:286:8 | s4 | | +| string.cpp:280:2:280:3 | ref arg s1 | string.cpp:283:7:283:8 | s1 | | +| string.cpp:280:10:280:11 | ref arg s2 | string.cpp:284:7:284:8 | s2 | | +| string.cpp:281:2:281:3 | ref arg s4 | string.cpp:286:7:286:8 | s4 | | +| string.cpp:281:10:281:11 | ref arg s3 | string.cpp:285:7:285:8 | s3 | | | string.cpp:290:17:290:22 | call to source | string.cpp:290:17:290:25 | call to basic_string | TAINT | -| string.cpp:290:17:290:25 | call to basic_string | string.cpp:294:7:294:8 | s2 | | +| string.cpp:290:17:290:25 | call to basic_string | string.cpp:294:7:294:8 | s1 | | +| string.cpp:290:17:290:25 | call to basic_string | string.cpp:298:2:298:3 | s1 | | +| string.cpp:290:17:290:25 | call to basic_string | string.cpp:302:7:302:8 | s1 | | | string.cpp:291:17:291:22 | call to source | string.cpp:291:17:291:25 | call to basic_string | TAINT | -| string.cpp:291:17:291:25 | call to basic_string | string.cpp:295:7:295:8 | s3 | | -| string.cpp:291:17:291:25 | call to basic_string | string.cpp:299:7:299:8 | s3 | | -| string.cpp:297:2:297:3 | ref arg s1 | string.cpp:301:7:301:8 | s1 | | -| string.cpp:298:7:298:8 | | string.cpp:298:7:298:8 | call to basic_string | TAINT | -| string.cpp:298:7:298:8 | call to basic_string | string.cpp:298:2:298:8 | ... = ... | | -| string.cpp:298:7:298:8 | call to basic_string | string.cpp:302:7:302:8 | s2 | | -| string.cpp:299:7:299:8 | s3 | string.cpp:299:2:299:8 | ... = ... | | -| string.cpp:299:7:299:8 | s3 | string.cpp:303:7:303:8 | s3 | | -| string.cpp:308:16:308:20 | 123 | string.cpp:308:16:308:21 | call to basic_string | TAINT | -| string.cpp:308:16:308:21 | call to basic_string | string.cpp:311:7:311:7 | a | | -| string.cpp:308:16:308:21 | call to basic_string | string.cpp:313:7:313:7 | a | | -| string.cpp:309:16:309:21 | call to source | string.cpp:309:16:309:24 | call to basic_string | TAINT | -| string.cpp:309:16:309:24 | call to basic_string | string.cpp:312:7:312:7 | b | | -| string.cpp:309:16:309:24 | call to basic_string | string.cpp:314:7:314:7 | b | | -| string.cpp:311:7:311:7 | a | string.cpp:311:9:311:12 | call to data | TAINT | -| string.cpp:311:7:311:7 | ref arg a | string.cpp:313:7:313:7 | a | | -| string.cpp:312:7:312:7 | b | string.cpp:312:9:312:12 | call to data | TAINT | -| string.cpp:312:7:312:7 | ref arg b | string.cpp:314:7:314:7 | b | | -| string.cpp:319:16:319:20 | 123 | string.cpp:319:16:319:21 | call to basic_string | TAINT | -| string.cpp:319:16:319:21 | call to basic_string | string.cpp:322:7:322:7 | a | | -| string.cpp:319:16:319:21 | call to basic_string | string.cpp:322:19:322:19 | a | | -| string.cpp:320:16:320:21 | call to source | string.cpp:320:16:320:24 | call to basic_string | TAINT | -| string.cpp:320:16:320:24 | call to basic_string | string.cpp:323:7:323:7 | b | | -| string.cpp:320:16:320:24 | call to basic_string | string.cpp:323:19:323:19 | b | | -| string.cpp:322:7:322:7 | a | string.cpp:322:9:322:14 | call to substr | TAINT | -| string.cpp:323:7:323:7 | b | string.cpp:323:9:323:14 | call to substr | TAINT | -| string.cpp:328:16:328:20 | 123 | string.cpp:328:16:328:21 | call to basic_string | TAINT | -| string.cpp:328:16:328:21 | call to basic_string | string.cpp:332:7:332:7 | a | | -| string.cpp:328:16:328:21 | call to basic_string | string.cpp:336:2:336:2 | a | | -| string.cpp:328:16:328:21 | call to basic_string | string.cpp:338:9:338:9 | a | | -| string.cpp:328:16:328:21 | call to basic_string | string.cpp:340:7:340:7 | a | | +| string.cpp:291:17:291:25 | call to basic_string | string.cpp:295:7:295:8 | s2 | | +| string.cpp:292:17:292:22 | call to source | string.cpp:292:17:292:25 | call to basic_string | TAINT | +| string.cpp:292:17:292:25 | call to basic_string | string.cpp:296:7:296:8 | s3 | | +| string.cpp:292:17:292:25 | call to basic_string | string.cpp:300:7:300:8 | s3 | | +| string.cpp:298:2:298:3 | ref arg s1 | string.cpp:302:7:302:8 | s1 | | +| string.cpp:299:7:299:8 | | string.cpp:299:7:299:8 | call to basic_string | TAINT | +| string.cpp:299:7:299:8 | call to basic_string | string.cpp:299:2:299:8 | ... = ... | | +| string.cpp:299:7:299:8 | call to basic_string | string.cpp:303:7:303:8 | s2 | | +| string.cpp:300:7:300:8 | s3 | string.cpp:300:2:300:8 | ... = ... | | +| string.cpp:300:7:300:8 | s3 | string.cpp:304:7:304:8 | s3 | | +| string.cpp:309:16:309:20 | 123 | string.cpp:309:16:309:21 | call to basic_string | TAINT | +| string.cpp:309:16:309:21 | call to basic_string | string.cpp:312:7:312:7 | a | | +| string.cpp:309:16:309:21 | call to basic_string | string.cpp:314:7:314:7 | a | | +| string.cpp:310:16:310:21 | call to source | string.cpp:310:16:310:24 | call to basic_string | TAINT | +| string.cpp:310:16:310:24 | call to basic_string | string.cpp:313:7:313:7 | b | | +| string.cpp:310:16:310:24 | call to basic_string | string.cpp:315:7:315:7 | b | | +| string.cpp:312:7:312:7 | a | string.cpp:312:9:312:12 | call to data | TAINT | +| string.cpp:312:7:312:7 | ref arg a | string.cpp:314:7:314:7 | a | | +| string.cpp:313:7:313:7 | b | string.cpp:313:9:313:12 | call to data | TAINT | +| string.cpp:313:7:313:7 | ref arg b | string.cpp:315:7:315:7 | b | | +| string.cpp:320:16:320:20 | 123 | string.cpp:320:16:320:21 | call to basic_string | TAINT | +| string.cpp:320:16:320:21 | call to basic_string | string.cpp:323:7:323:7 | a | | +| string.cpp:320:16:320:21 | call to basic_string | string.cpp:323:19:323:19 | a | | +| string.cpp:321:16:321:21 | call to source | string.cpp:321:16:321:24 | call to basic_string | TAINT | +| string.cpp:321:16:321:24 | call to basic_string | string.cpp:324:7:324:7 | b | | +| string.cpp:321:16:321:24 | call to basic_string | string.cpp:324:19:324:19 | b | | +| string.cpp:323:7:323:7 | a | string.cpp:323:9:323:14 | call to substr | TAINT | +| string.cpp:324:7:324:7 | b | string.cpp:324:9:324:14 | call to substr | TAINT | | string.cpp:329:16:329:20 | 123 | string.cpp:329:16:329:21 | call to basic_string | TAINT | -| string.cpp:329:16:329:21 | call to basic_string | string.cpp:333:7:333:7 | b | | -| string.cpp:329:16:329:21 | call to basic_string | string.cpp:337:2:337:2 | b | | -| string.cpp:329:16:329:21 | call to basic_string | string.cpp:341:7:341:7 | b | | +| string.cpp:329:16:329:21 | call to basic_string | string.cpp:333:7:333:7 | a | | +| string.cpp:329:16:329:21 | call to basic_string | string.cpp:337:2:337:2 | a | | +| string.cpp:329:16:329:21 | call to basic_string | string.cpp:339:9:339:9 | a | | +| string.cpp:329:16:329:21 | call to basic_string | string.cpp:341:7:341:7 | a | | | string.cpp:330:16:330:20 | 123 | string.cpp:330:16:330:21 | call to basic_string | TAINT | -| string.cpp:330:16:330:21 | call to basic_string | string.cpp:334:7:334:7 | c | | -| string.cpp:330:16:330:21 | call to basic_string | string.cpp:338:2:338:2 | c | | -| string.cpp:330:16:330:21 | call to basic_string | string.cpp:342:7:342:7 | c | | -| string.cpp:336:2:336:2 | a | string.cpp:336:3:336:3 | call to operator[] | TAINT | -| string.cpp:336:2:336:2 | ref arg a | string.cpp:338:9:338:9 | a | | -| string.cpp:336:2:336:2 | ref arg a | string.cpp:340:7:340:7 | a | | -| string.cpp:336:2:336:25 | ... = ... | string.cpp:336:3:336:3 | call to operator[] [post update] | | -| string.cpp:336:3:336:3 | call to operator[] [post update] | string.cpp:336:2:336:2 | ref arg a | TAINT | -| string.cpp:336:9:336:23 | call to source | string.cpp:336:2:336:25 | ... = ... | | -| string.cpp:337:2:337:2 | b | string.cpp:337:4:337:5 | call to at | TAINT | -| string.cpp:337:2:337:2 | ref arg b | string.cpp:341:7:341:7 | b | | -| string.cpp:337:2:337:28 | ... = ... | string.cpp:337:4:337:5 | call to at [post update] | | -| string.cpp:337:4:337:5 | call to at [post update] | string.cpp:337:2:337:2 | ref arg b | TAINT | -| string.cpp:337:12:337:26 | call to source | string.cpp:337:2:337:28 | ... = ... | | -| string.cpp:338:2:338:2 | c | string.cpp:338:3:338:3 | call to operator[] | TAINT | -| string.cpp:338:2:338:2 | ref arg c | string.cpp:342:7:342:7 | c | | -| string.cpp:338:2:338:12 | ... = ... | string.cpp:338:3:338:3 | call to operator[] [post update] | | -| string.cpp:338:3:338:3 | call to operator[] [post update] | string.cpp:338:2:338:2 | ref arg c | TAINT | -| string.cpp:338:9:338:9 | a | string.cpp:338:10:338:10 | call to operator[] | TAINT | -| string.cpp:338:9:338:9 | ref arg a | string.cpp:340:7:340:7 | a | | -| string.cpp:338:10:338:10 | call to operator[] | string.cpp:338:2:338:12 | ... = ... | | -| string.cpp:347:18:347:22 | 123 | string.cpp:347:18:347:23 | call to basic_string | TAINT | -| string.cpp:347:18:347:23 | call to basic_string | string.cpp:349:2:349:4 | str | | -| string.cpp:347:18:347:23 | call to basic_string | string.cpp:350:7:350:9 | str | | -| string.cpp:347:18:347:23 | call to basic_string | string.cpp:351:7:351:9 | str | | -| string.cpp:349:2:349:4 | ref arg str | string.cpp:350:7:350:9 | str | | -| string.cpp:349:2:349:4 | ref arg str | string.cpp:351:7:351:9 | str | | -| string.cpp:349:2:349:4 | str | string.cpp:349:6:349:9 | call to data | TAINT | -| string.cpp:349:2:349:14 | access to array [post update] | string.cpp:349:6:349:9 | call to data [inner post update] | | -| string.cpp:349:2:349:34 | ... = ... | string.cpp:349:2:349:14 | access to array [post update] | | -| string.cpp:349:6:349:9 | call to data | string.cpp:349:2:349:14 | access to array | TAINT | -| string.cpp:349:6:349:9 | call to data [inner post update] | string.cpp:349:2:349:4 | ref arg str | TAINT | -| string.cpp:349:13:349:13 | 1 | string.cpp:349:2:349:14 | access to array | TAINT | -| string.cpp:349:18:349:32 | call to source | string.cpp:349:2:349:34 | ... = ... | | -| string.cpp:351:7:351:9 | str | string.cpp:351:11:351:14 | call to data | TAINT | -| string.cpp:357:18:357:24 | hello | string.cpp:357:18:357:25 | call to basic_string | TAINT | -| string.cpp:357:18:357:25 | call to basic_string | string.cpp:362:8:362:9 | s1 | | -| string.cpp:357:18:357:25 | call to basic_string | string.cpp:363:8:363:9 | s1 | | -| string.cpp:357:18:357:25 | call to basic_string | string.cpp:364:8:364:9 | s1 | | -| string.cpp:358:18:358:23 | call to source | string.cpp:358:18:358:26 | call to basic_string | TAINT | -| string.cpp:358:18:358:26 | call to basic_string | string.cpp:363:18:363:19 | s2 | | -| string.cpp:358:18:358:26 | call to basic_string | string.cpp:363:30:363:31 | s2 | | -| string.cpp:359:18:359:24 | hello | string.cpp:359:18:359:25 | call to basic_string | TAINT | -| string.cpp:359:18:359:25 | call to basic_string | string.cpp:366:8:366:9 | s3 | | -| string.cpp:359:18:359:25 | call to basic_string | string.cpp:367:8:367:9 | s3 | | -| string.cpp:359:18:359:25 | call to basic_string | string.cpp:368:8:368:9 | s3 | | -| string.cpp:360:18:360:24 | world | string.cpp:360:18:360:25 | call to basic_string | TAINT | -| string.cpp:360:18:360:25 | call to basic_string | string.cpp:367:18:367:19 | s4 | | -| string.cpp:360:18:360:25 | call to basic_string | string.cpp:367:30:367:31 | s4 | | -| string.cpp:363:8:363:9 | ref arg s1 | string.cpp:364:8:364:9 | s1 | | -| string.cpp:363:8:363:9 | s1 | string.cpp:363:11:363:16 | call to append | TAINT | -| string.cpp:363:18:363:19 | ref arg s2 | string.cpp:363:30:363:31 | s2 | | -| string.cpp:363:18:363:19 | s2 | string.cpp:363:21:363:25 | call to begin | TAINT | -| string.cpp:363:21:363:25 | call to begin | string.cpp:363:8:363:9 | ref arg s1 | TAINT | -| string.cpp:363:21:363:25 | call to begin | string.cpp:363:11:363:16 | call to append | TAINT | -| string.cpp:363:30:363:31 | s2 | string.cpp:363:33:363:35 | call to end | TAINT | -| string.cpp:363:33:363:35 | call to end | string.cpp:363:8:363:9 | ref arg s1 | TAINT | -| string.cpp:363:33:363:35 | call to end | string.cpp:363:11:363:16 | call to append | TAINT | -| string.cpp:367:8:367:9 | ref arg s3 | string.cpp:368:8:368:9 | s3 | | -| string.cpp:367:8:367:9 | s3 | string.cpp:367:11:367:16 | call to append | TAINT | -| string.cpp:367:18:367:19 | ref arg s4 | string.cpp:367:30:367:31 | s4 | | -| string.cpp:367:18:367:19 | s4 | string.cpp:367:21:367:25 | call to begin | TAINT | -| string.cpp:367:21:367:25 | call to begin | string.cpp:367:8:367:9 | ref arg s3 | TAINT | -| string.cpp:367:21:367:25 | call to begin | string.cpp:367:11:367:16 | call to append | TAINT | -| string.cpp:367:30:367:31 | s4 | string.cpp:367:33:367:35 | call to end | TAINT | -| string.cpp:367:33:367:35 | call to end | string.cpp:367:8:367:9 | ref arg s3 | TAINT | -| string.cpp:367:33:367:35 | call to end | string.cpp:367:11:367:16 | call to append | TAINT | -| string.cpp:373:18:373:24 | hello | string.cpp:373:18:373:25 | call to basic_string | TAINT | -| string.cpp:373:18:373:25 | call to basic_string | string.cpp:376:28:376:29 | s1 | | -| string.cpp:374:18:374:23 | call to source | string.cpp:374:18:374:26 | call to basic_string | TAINT | -| string.cpp:374:18:374:26 | call to basic_string | string.cpp:380:28:380:29 | s2 | | -| string.cpp:376:28:376:29 | s1 | string.cpp:376:31:376:35 | call to begin | TAINT | -| string.cpp:376:31:376:35 | call to begin | string.cpp:378:9:378:13 | iter1 | | -| string.cpp:376:31:376:35 | call to begin | string.cpp:379:8:379:12 | iter1 | | -| string.cpp:378:9:378:13 | iter1 | string.cpp:378:8:378:8 | call to operator* | TAINT | -| string.cpp:378:9:378:13 | ref arg iter1 | string.cpp:379:8:379:12 | iter1 | | -| string.cpp:379:8:379:12 | iter1 | string.cpp:379:13:379:13 | call to operator[] | TAINT | -| string.cpp:380:28:380:29 | s2 | string.cpp:380:31:380:35 | call to begin | TAINT | -| string.cpp:380:31:380:35 | call to begin | string.cpp:382:9:382:13 | iter2 | | -| string.cpp:380:31:380:35 | call to begin | string.cpp:383:8:383:12 | iter2 | | -| string.cpp:382:9:382:13 | iter2 | string.cpp:382:8:382:8 | call to operator* | TAINT | -| string.cpp:382:9:382:13 | ref arg iter2 | string.cpp:383:8:383:12 | iter2 | | -| string.cpp:383:8:383:12 | iter2 | string.cpp:383:13:383:13 | call to operator[] | TAINT | -| string.cpp:388:18:388:24 | hello | string.cpp:388:18:388:25 | call to basic_string | TAINT | -| string.cpp:388:18:388:25 | call to basic_string | string.cpp:391:25:391:26 | s1 | | -| string.cpp:389:18:389:23 | call to source | string.cpp:389:18:389:26 | call to basic_string | TAINT | -| string.cpp:389:18:389:26 | call to basic_string | string.cpp:393:25:393:26 | s2 | | -| string.cpp:389:18:389:26 | call to basic_string | string.cpp:413:8:413:9 | s2 | | -| string.cpp:391:25:391:26 | s1 | string.cpp:391:28:391:32 | call to begin | TAINT | -| string.cpp:393:25:393:26 | ref arg s2 | string.cpp:413:8:413:9 | s2 | | -| string.cpp:393:25:393:26 | s2 | string.cpp:393:28:393:32 | call to begin | TAINT | -| string.cpp:393:28:393:32 | call to begin | string.cpp:396:10:396:11 | i2 | | -| string.cpp:393:28:393:32 | call to begin | string.cpp:397:10:397:11 | i2 | | -| string.cpp:393:28:393:32 | call to begin | string.cpp:398:8:398:9 | i2 | | -| string.cpp:393:28:393:32 | call to begin | string.cpp:400:8:400:9 | i2 | | -| string.cpp:393:28:393:32 | call to begin | string.cpp:402:8:402:9 | i2 | | -| string.cpp:393:28:393:32 | call to begin | string.cpp:405:8:405:9 | i2 | | -| string.cpp:393:28:393:32 | call to begin | string.cpp:408:8:408:9 | i2 | | -| string.cpp:393:28:393:32 | call to begin | string.cpp:410:8:410:9 | i2 | | -| string.cpp:393:28:393:32 | call to begin | string.cpp:417:9:417:10 | i2 | | -| string.cpp:393:28:393:32 | call to begin | string.cpp:420:9:420:10 | i2 | | -| string.cpp:396:10:396:11 | i2 | string.cpp:396:12:396:12 | call to operator+ | TAINT | -| string.cpp:396:10:396:11 | ref arg i2 | string.cpp:397:10:397:11 | i2 | | -| string.cpp:396:10:396:11 | ref arg i2 | string.cpp:398:8:398:9 | i2 | | -| string.cpp:396:10:396:11 | ref arg i2 | string.cpp:400:8:400:9 | i2 | | -| string.cpp:396:10:396:11 | ref arg i2 | string.cpp:402:8:402:9 | i2 | | -| string.cpp:396:10:396:11 | ref arg i2 | string.cpp:405:8:405:9 | i2 | | -| string.cpp:396:10:396:11 | ref arg i2 | string.cpp:408:8:408:9 | i2 | | -| string.cpp:396:10:396:11 | ref arg i2 | string.cpp:410:8:410:9 | i2 | | -| string.cpp:396:10:396:11 | ref arg i2 | string.cpp:417:9:417:10 | i2 | | -| string.cpp:396:10:396:11 | ref arg i2 | string.cpp:420:9:420:10 | i2 | | -| string.cpp:396:12:396:12 | call to operator+ | string.cpp:396:8:396:8 | call to operator* | TAINT | -| string.cpp:397:10:397:11 | i2 | string.cpp:397:12:397:12 | call to operator- | TAINT | -| string.cpp:397:10:397:11 | ref arg i2 | string.cpp:398:8:398:9 | i2 | | -| string.cpp:397:10:397:11 | ref arg i2 | string.cpp:400:8:400:9 | i2 | | -| string.cpp:397:10:397:11 | ref arg i2 | string.cpp:402:8:402:9 | i2 | | -| string.cpp:397:10:397:11 | ref arg i2 | string.cpp:405:8:405:9 | i2 | | -| string.cpp:397:10:397:11 | ref arg i2 | string.cpp:408:8:408:9 | i2 | | -| string.cpp:397:10:397:11 | ref arg i2 | string.cpp:410:8:410:9 | i2 | | -| string.cpp:397:10:397:11 | ref arg i2 | string.cpp:417:9:417:10 | i2 | | -| string.cpp:397:10:397:11 | ref arg i2 | string.cpp:420:9:420:10 | i2 | | -| string.cpp:397:12:397:12 | call to operator- | string.cpp:397:8:397:8 | call to operator* | TAINT | -| string.cpp:398:8:398:9 | i2 | string.cpp:398:3:398:9 | ... = ... | | -| string.cpp:398:8:398:9 | i2 | string.cpp:399:12:399:13 | i3 | | -| string.cpp:399:10:399:10 | call to operator++ | string.cpp:399:8:399:8 | call to operator* | TAINT | -| string.cpp:399:10:399:10 | ref arg call to operator++ | string.cpp:399:12:399:13 | ref arg i3 | | -| string.cpp:399:12:399:13 | i3 | string.cpp:399:10:399:10 | call to operator++ | | -| string.cpp:400:8:400:9 | i2 | string.cpp:400:3:400:9 | ... = ... | | -| string.cpp:400:8:400:9 | i2 | string.cpp:401:12:401:13 | i4 | | -| string.cpp:401:10:401:10 | call to operator-- | string.cpp:401:8:401:8 | call to operator* | TAINT | -| string.cpp:401:10:401:10 | ref arg call to operator-- | string.cpp:401:12:401:13 | ref arg i4 | | -| string.cpp:401:12:401:13 | i4 | string.cpp:401:10:401:10 | call to operator-- | | -| string.cpp:402:8:402:9 | i2 | string.cpp:402:3:402:9 | ... = ... | | -| string.cpp:402:8:402:9 | i2 | string.cpp:403:3:403:4 | i5 | | -| string.cpp:402:8:402:9 | i2 | string.cpp:404:9:404:10 | i5 | | -| string.cpp:403:3:403:4 | i5 | string.cpp:403:5:403:5 | call to operator++ | | -| string.cpp:403:3:403:4 | ref arg i5 | string.cpp:404:9:404:10 | i5 | | -| string.cpp:404:9:404:10 | i5 | string.cpp:404:8:404:8 | call to operator* | TAINT | -| string.cpp:405:8:405:9 | i2 | string.cpp:405:3:405:9 | ... = ... | | -| string.cpp:405:8:405:9 | i2 | string.cpp:406:3:406:4 | i6 | | -| string.cpp:405:8:405:9 | i2 | string.cpp:407:9:407:10 | i6 | | -| string.cpp:406:3:406:4 | i6 | string.cpp:406:5:406:5 | call to operator-- | | -| string.cpp:406:3:406:4 | ref arg i6 | string.cpp:407:9:407:10 | i6 | | -| string.cpp:407:9:407:10 | i6 | string.cpp:407:8:407:8 | call to operator* | TAINT | -| string.cpp:408:8:408:9 | i2 | string.cpp:408:3:408:9 | ... = ... | | -| string.cpp:408:8:408:9 | i2 | string.cpp:409:10:409:11 | i7 | | -| string.cpp:409:10:409:11 | i7 | string.cpp:409:12:409:12 | call to operator+= | TAINT | -| string.cpp:409:12:409:12 | call to operator+= | string.cpp:409:8:409:8 | call to operator* | TAINT | -| string.cpp:409:12:409:12 | ref arg call to operator+= | string.cpp:409:10:409:11 | ref arg i7 | TAINT | -| string.cpp:409:14:409:14 | 1 | string.cpp:409:10:409:11 | ref arg i7 | TAINT | -| string.cpp:410:8:410:9 | i2 | string.cpp:410:3:410:9 | ... = ... | | -| string.cpp:410:8:410:9 | i2 | string.cpp:411:10:411:11 | i8 | | -| string.cpp:411:10:411:11 | i8 | string.cpp:411:12:411:12 | call to operator-= | TAINT | -| string.cpp:411:12:411:12 | call to operator-= | string.cpp:411:8:411:8 | call to operator* | TAINT | -| string.cpp:411:12:411:12 | ref arg call to operator-= | string.cpp:411:10:411:11 | ref arg i8 | TAINT | -| string.cpp:411:14:411:14 | 1 | string.cpp:411:10:411:11 | ref arg i8 | TAINT | -| string.cpp:413:8:413:9 | s2 | string.cpp:413:11:413:13 | call to end | TAINT | -| string.cpp:413:11:413:13 | call to end | string.cpp:413:3:413:15 | ... = ... | | -| string.cpp:413:11:413:13 | call to end | string.cpp:414:5:414:6 | i9 | | -| string.cpp:413:11:413:13 | call to end | string.cpp:415:9:415:10 | i9 | | -| string.cpp:414:5:414:6 | i9 | string.cpp:414:3:414:3 | call to operator-- | | -| string.cpp:414:5:414:6 | ref arg i9 | string.cpp:415:9:415:10 | i9 | | -| string.cpp:415:9:415:10 | i9 | string.cpp:415:8:415:8 | call to operator* | TAINT | -| string.cpp:417:9:417:10 | i2 | string.cpp:417:3:417:10 | ... = ... | | -| string.cpp:417:9:417:10 | i2 | string.cpp:418:10:418:12 | i10 | | -| string.cpp:417:9:417:10 | i2 | string.cpp:419:8:419:10 | i10 | | -| string.cpp:418:10:418:12 | i10 | string.cpp:418:13:418:13 | call to operator++ | | -| string.cpp:418:10:418:12 | ref arg i10 | string.cpp:419:8:419:10 | i10 | | -| string.cpp:418:13:418:13 | call to operator++ | string.cpp:418:8:418:8 | call to operator* | TAINT | -| string.cpp:419:8:419:10 | i10 | string.cpp:419:8:419:10 | call to iterator | | -| string.cpp:420:9:420:10 | i2 | string.cpp:420:3:420:10 | ... = ... | | -| string.cpp:420:9:420:10 | i2 | string.cpp:421:10:421:12 | i11 | | -| string.cpp:420:9:420:10 | i2 | string.cpp:422:8:422:10 | i11 | | -| string.cpp:421:10:421:12 | i11 | string.cpp:421:13:421:13 | call to operator-- | | -| string.cpp:421:10:421:12 | ref arg i11 | string.cpp:422:8:422:10 | i11 | | -| string.cpp:421:13:421:13 | call to operator-- | string.cpp:421:8:421:8 | call to operator* | TAINT | -| string.cpp:422:8:422:10 | i11 | string.cpp:422:8:422:10 | call to iterator | | -| string.cpp:428:17:428:20 | aa | string.cpp:428:17:428:21 | call to basic_string | TAINT | -| string.cpp:428:17:428:21 | call to basic_string | string.cpp:433:7:433:8 | s1 | | -| string.cpp:428:17:428:21 | call to basic_string | string.cpp:434:7:434:8 | s1 | | -| string.cpp:429:17:429:20 | bb | string.cpp:429:17:429:21 | call to basic_string | TAINT | -| string.cpp:429:17:429:21 | call to basic_string | string.cpp:436:7:436:8 | s2 | | -| string.cpp:429:17:429:21 | call to basic_string | string.cpp:437:7:437:8 | s2 | | -| string.cpp:430:14:430:17 | cc | string.cpp:433:20:433:22 | cs1 | | -| string.cpp:431:14:431:19 | call to source | string.cpp:436:20:436:22 | cs2 | | -| string.cpp:433:7:433:8 | ref arg s1 | string.cpp:434:7:434:8 | s1 | | -| string.cpp:433:7:433:8 | s1 | string.cpp:433:10:433:15 | call to insert | TAINT | -| string.cpp:433:20:433:22 | cs1 | string.cpp:433:7:433:8 | ref arg s1 | TAINT | -| string.cpp:433:20:433:22 | cs1 | string.cpp:433:10:433:15 | call to insert | TAINT | -| string.cpp:436:7:436:8 | ref arg s2 | string.cpp:437:7:437:8 | s2 | | -| string.cpp:436:7:436:8 | s2 | string.cpp:436:10:436:15 | call to insert | TAINT | -| string.cpp:436:20:436:22 | cs2 | string.cpp:436:7:436:8 | ref arg s2 | TAINT | -| string.cpp:436:20:436:22 | cs2 | string.cpp:436:10:436:15 | call to insert | TAINT | -| string.cpp:443:17:443:20 | aa | string.cpp:443:17:443:21 | call to basic_string | TAINT | -| string.cpp:443:17:443:21 | call to basic_string | string.cpp:446:8:446:8 | a | | -| string.cpp:443:17:443:21 | call to basic_string | string.cpp:446:17:446:17 | a | | -| string.cpp:443:17:443:21 | call to basic_string | string.cpp:447:8:447:8 | a | | -| string.cpp:444:17:444:20 | bb | string.cpp:444:17:444:21 | call to basic_string | TAINT | -| string.cpp:444:17:444:21 | call to basic_string | string.cpp:449:8:449:8 | b | | -| string.cpp:444:17:444:21 | call to basic_string | string.cpp:449:17:449:17 | b | | -| string.cpp:444:17:444:21 | call to basic_string | string.cpp:450:8:450:8 | b | | -| string.cpp:446:8:446:8 | a | string.cpp:446:10:446:15 | call to insert | TAINT | -| string.cpp:446:8:446:8 | ref arg a | string.cpp:447:8:447:8 | a | | -| string.cpp:446:17:446:17 | a | string.cpp:446:19:446:23 | call to begin | TAINT | -| string.cpp:446:17:446:17 | ref arg a | string.cpp:446:8:446:8 | a | | -| string.cpp:446:17:446:17 | ref arg a | string.cpp:447:8:447:8 | a | | -| string.cpp:446:17:446:25 | call to iterator | string.cpp:446:8:446:8 | ref arg a | TAINT | -| string.cpp:446:17:446:25 | call to iterator | string.cpp:446:10:446:15 | call to insert | TAINT | -| string.cpp:446:19:446:23 | call to begin | string.cpp:446:17:446:25 | call to iterator | TAINT | -| string.cpp:446:32:446:34 | 120 | string.cpp:446:8:446:8 | ref arg a | TAINT | -| string.cpp:446:32:446:34 | 120 | string.cpp:446:10:446:15 | call to insert | TAINT | -| string.cpp:449:8:449:8 | b | string.cpp:449:10:449:15 | call to insert | TAINT | -| string.cpp:449:8:449:8 | ref arg b | string.cpp:450:8:450:8 | b | | -| string.cpp:449:17:449:17 | b | string.cpp:449:19:449:23 | call to begin | TAINT | -| string.cpp:449:17:449:17 | ref arg b | string.cpp:449:8:449:8 | b | | -| string.cpp:449:17:449:17 | ref arg b | string.cpp:450:8:450:8 | b | | -| string.cpp:449:17:449:25 | call to iterator | string.cpp:449:8:449:8 | ref arg b | TAINT | -| string.cpp:449:17:449:25 | call to iterator | string.cpp:449:10:449:15 | call to insert | TAINT | -| string.cpp:449:19:449:23 | call to begin | string.cpp:449:17:449:25 | call to iterator | TAINT | -| string.cpp:449:32:449:46 | call to source | string.cpp:449:8:449:8 | ref arg b | TAINT | -| string.cpp:449:32:449:46 | call to source | string.cpp:449:10:449:15 | call to insert | TAINT | -| string.cpp:454:17:454:20 | cc | string.cpp:454:17:454:21 | call to basic_string | TAINT | -| string.cpp:454:17:454:21 | call to basic_string | string.cpp:459:8:459:8 | c | | -| string.cpp:454:17:454:21 | call to basic_string | string.cpp:459:17:459:17 | c | | -| string.cpp:454:17:454:21 | call to basic_string | string.cpp:460:8:460:8 | c | | -| string.cpp:455:17:455:20 | dd | string.cpp:455:17:455:21 | call to basic_string | TAINT | -| string.cpp:455:17:455:21 | call to basic_string | string.cpp:462:8:462:8 | d | | -| string.cpp:455:17:455:21 | call to basic_string | string.cpp:462:17:462:17 | d | | -| string.cpp:455:17:455:21 | call to basic_string | string.cpp:463:8:463:8 | d | | -| string.cpp:456:18:456:21 | 11 | string.cpp:456:18:456:22 | call to basic_string | TAINT | -| string.cpp:456:18:456:22 | call to basic_string | string.cpp:459:26:459:27 | s1 | | -| string.cpp:456:18:456:22 | call to basic_string | string.cpp:459:38:459:39 | s1 | | -| string.cpp:456:18:456:22 | call to basic_string | string.cpp:465:28:465:29 | s1 | | -| string.cpp:456:18:456:22 | call to basic_string | string.cpp:465:40:465:41 | s1 | | -| string.cpp:457:18:457:23 | call to source | string.cpp:457:18:457:26 | call to basic_string | TAINT | -| string.cpp:457:18:457:26 | call to basic_string | string.cpp:462:26:462:27 | s2 | | -| string.cpp:457:18:457:26 | call to basic_string | string.cpp:462:38:462:39 | s2 | | -| string.cpp:457:18:457:26 | call to basic_string | string.cpp:465:8:465:9 | s2 | | -| string.cpp:457:18:457:26 | call to basic_string | string.cpp:465:18:465:19 | s2 | | -| string.cpp:457:18:457:26 | call to basic_string | string.cpp:466:8:466:9 | s2 | | -| string.cpp:459:8:459:8 | c | string.cpp:459:10:459:15 | call to insert | TAINT | -| string.cpp:459:8:459:8 | ref arg c | string.cpp:460:8:460:8 | c | | -| string.cpp:459:17:459:17 | c | string.cpp:459:19:459:21 | call to end | TAINT | -| string.cpp:459:17:459:17 | ref arg c | string.cpp:459:8:459:8 | c | | -| string.cpp:459:17:459:17 | ref arg c | string.cpp:460:8:460:8 | c | | -| string.cpp:459:17:459:23 | call to iterator | string.cpp:459:8:459:8 | ref arg c | TAINT | -| string.cpp:459:17:459:23 | call to iterator | string.cpp:459:10:459:15 | call to insert | TAINT | -| string.cpp:459:19:459:21 | call to end | string.cpp:459:17:459:23 | call to iterator | TAINT | -| string.cpp:459:26:459:27 | ref arg s1 | string.cpp:459:38:459:39 | s1 | | -| string.cpp:459:26:459:27 | ref arg s1 | string.cpp:465:28:465:29 | s1 | | -| string.cpp:459:26:459:27 | ref arg s1 | string.cpp:465:40:465:41 | s1 | | -| string.cpp:459:26:459:27 | s1 | string.cpp:459:29:459:33 | call to begin | TAINT | -| string.cpp:459:29:459:33 | call to begin | string.cpp:459:8:459:8 | ref arg c | TAINT | -| string.cpp:459:29:459:33 | call to begin | string.cpp:459:10:459:15 | call to insert | TAINT | -| string.cpp:459:38:459:39 | ref arg s1 | string.cpp:465:28:465:29 | s1 | | -| string.cpp:459:38:459:39 | ref arg s1 | string.cpp:465:40:465:41 | s1 | | -| string.cpp:459:38:459:39 | s1 | string.cpp:459:41:459:43 | call to end | TAINT | -| string.cpp:459:41:459:43 | call to end | string.cpp:459:8:459:8 | ref arg c | TAINT | -| string.cpp:459:41:459:43 | call to end | string.cpp:459:10:459:15 | call to insert | TAINT | -| string.cpp:462:8:462:8 | d | string.cpp:462:10:462:15 | call to insert | TAINT | -| string.cpp:462:8:462:8 | ref arg d | string.cpp:463:8:463:8 | d | | -| string.cpp:462:17:462:17 | d | string.cpp:462:19:462:21 | call to end | TAINT | -| string.cpp:462:17:462:17 | ref arg d | string.cpp:462:8:462:8 | d | | -| string.cpp:462:17:462:17 | ref arg d | string.cpp:463:8:463:8 | d | | -| string.cpp:462:17:462:23 | call to iterator | string.cpp:462:8:462:8 | ref arg d | TAINT | -| string.cpp:462:17:462:23 | call to iterator | string.cpp:462:10:462:15 | call to insert | TAINT | -| string.cpp:462:19:462:21 | call to end | string.cpp:462:17:462:23 | call to iterator | TAINT | -| string.cpp:462:26:462:27 | ref arg s2 | string.cpp:462:38:462:39 | s2 | | -| string.cpp:462:26:462:27 | ref arg s2 | string.cpp:465:8:465:9 | s2 | | -| string.cpp:462:26:462:27 | ref arg s2 | string.cpp:465:18:465:19 | s2 | | -| string.cpp:462:26:462:27 | ref arg s2 | string.cpp:466:8:466:9 | s2 | | -| string.cpp:462:26:462:27 | s2 | string.cpp:462:29:462:33 | call to begin | TAINT | -| string.cpp:462:29:462:33 | call to begin | string.cpp:462:8:462:8 | ref arg d | TAINT | -| string.cpp:462:29:462:33 | call to begin | string.cpp:462:10:462:15 | call to insert | TAINT | -| string.cpp:462:38:462:39 | ref arg s2 | string.cpp:465:8:465:9 | s2 | | -| string.cpp:462:38:462:39 | ref arg s2 | string.cpp:465:18:465:19 | s2 | | -| string.cpp:462:38:462:39 | ref arg s2 | string.cpp:466:8:466:9 | s2 | | -| string.cpp:462:38:462:39 | s2 | string.cpp:462:41:462:43 | call to end | TAINT | -| string.cpp:462:41:462:43 | call to end | string.cpp:462:8:462:8 | ref arg d | TAINT | -| string.cpp:462:41:462:43 | call to end | string.cpp:462:10:462:15 | call to insert | TAINT | -| string.cpp:465:8:465:9 | ref arg s2 | string.cpp:466:8:466:9 | s2 | | -| string.cpp:465:8:465:9 | s2 | string.cpp:465:11:465:16 | call to insert | TAINT | -| string.cpp:465:18:465:19 | ref arg s2 | string.cpp:465:8:465:9 | s2 | | -| string.cpp:465:18:465:19 | ref arg s2 | string.cpp:466:8:466:9 | s2 | | -| string.cpp:465:18:465:19 | s2 | string.cpp:465:21:465:23 | call to end | TAINT | -| string.cpp:465:18:465:25 | call to iterator | string.cpp:465:8:465:9 | ref arg s2 | TAINT | -| string.cpp:465:18:465:25 | call to iterator | string.cpp:465:11:465:16 | call to insert | TAINT | -| string.cpp:465:21:465:23 | call to end | string.cpp:465:18:465:25 | call to iterator | TAINT | -| string.cpp:465:28:465:29 | ref arg s1 | string.cpp:465:40:465:41 | s1 | | -| string.cpp:465:28:465:29 | s1 | string.cpp:465:31:465:35 | call to begin | TAINT | -| string.cpp:465:31:465:35 | call to begin | string.cpp:465:8:465:9 | ref arg s2 | TAINT | -| string.cpp:465:31:465:35 | call to begin | string.cpp:465:11:465:16 | call to insert | TAINT | -| string.cpp:465:40:465:41 | s1 | string.cpp:465:43:465:45 | call to end | TAINT | -| string.cpp:465:43:465:45 | call to end | string.cpp:465:8:465:9 | ref arg s2 | TAINT | -| string.cpp:465:43:465:45 | call to end | string.cpp:465:11:465:16 | call to insert | TAINT | -| string.cpp:470:17:470:20 | ee | string.cpp:470:17:470:21 | call to basic_string | TAINT | -| string.cpp:470:17:470:21 | call to basic_string | string.cpp:475:8:475:8 | e | | -| string.cpp:470:17:470:21 | call to basic_string | string.cpp:476:8:476:8 | e | | -| string.cpp:471:17:471:20 | ff | string.cpp:471:17:471:21 | call to basic_string | TAINT | -| string.cpp:471:17:471:21 | call to basic_string | string.cpp:478:8:478:8 | f | | -| string.cpp:471:17:471:21 | call to basic_string | string.cpp:479:8:479:8 | f | | -| string.cpp:472:18:472:21 | 33 | string.cpp:472:18:472:22 | call to basic_string | TAINT | -| string.cpp:472:18:472:22 | call to basic_string | string.cpp:475:17:475:18 | s3 | | -| string.cpp:472:18:472:22 | call to basic_string | string.cpp:475:29:475:30 | s3 | | -| string.cpp:472:18:472:22 | call to basic_string | string.cpp:481:18:481:19 | s3 | | -| string.cpp:472:18:472:22 | call to basic_string | string.cpp:481:30:481:31 | s3 | | -| string.cpp:473:18:473:23 | call to source | string.cpp:473:18:473:26 | call to basic_string | TAINT | -| string.cpp:473:18:473:26 | call to basic_string | string.cpp:478:17:478:18 | s4 | | -| string.cpp:473:18:473:26 | call to basic_string | string.cpp:478:29:478:30 | s4 | | -| string.cpp:473:18:473:26 | call to basic_string | string.cpp:481:8:481:9 | s4 | | -| string.cpp:473:18:473:26 | call to basic_string | string.cpp:482:8:482:9 | s4 | | -| string.cpp:475:8:475:8 | e | string.cpp:475:10:475:15 | call to append | TAINT | -| string.cpp:475:8:475:8 | ref arg e | string.cpp:476:8:476:8 | e | | -| string.cpp:475:17:475:18 | ref arg s3 | string.cpp:475:29:475:30 | s3 | | -| string.cpp:475:17:475:18 | ref arg s3 | string.cpp:481:18:481:19 | s3 | | -| string.cpp:475:17:475:18 | ref arg s3 | string.cpp:481:30:481:31 | s3 | | -| string.cpp:475:17:475:18 | s3 | string.cpp:475:20:475:24 | call to begin | TAINT | -| string.cpp:475:20:475:24 | call to begin | string.cpp:475:8:475:8 | ref arg e | TAINT | -| string.cpp:475:20:475:24 | call to begin | string.cpp:475:10:475:15 | call to append | TAINT | -| string.cpp:475:29:475:30 | ref arg s3 | string.cpp:481:18:481:19 | s3 | | -| string.cpp:475:29:475:30 | ref arg s3 | string.cpp:481:30:481:31 | s3 | | -| string.cpp:475:29:475:30 | s3 | string.cpp:475:32:475:34 | call to end | TAINT | -| string.cpp:475:32:475:34 | call to end | string.cpp:475:8:475:8 | ref arg e | TAINT | -| string.cpp:475:32:475:34 | call to end | string.cpp:475:10:475:15 | call to append | TAINT | -| string.cpp:478:8:478:8 | f | string.cpp:478:10:478:15 | call to append | TAINT | -| string.cpp:478:8:478:8 | ref arg f | string.cpp:479:8:479:8 | f | | -| string.cpp:478:17:478:18 | ref arg s4 | string.cpp:478:29:478:30 | s4 | | -| string.cpp:478:17:478:18 | ref arg s4 | string.cpp:481:8:481:9 | s4 | | -| string.cpp:478:17:478:18 | ref arg s4 | string.cpp:482:8:482:9 | s4 | | -| string.cpp:478:17:478:18 | s4 | string.cpp:478:20:478:24 | call to begin | TAINT | -| string.cpp:478:20:478:24 | call to begin | string.cpp:478:8:478:8 | ref arg f | TAINT | -| string.cpp:478:20:478:24 | call to begin | string.cpp:478:10:478:15 | call to append | TAINT | -| string.cpp:478:29:478:30 | ref arg s4 | string.cpp:481:8:481:9 | s4 | | -| string.cpp:478:29:478:30 | ref arg s4 | string.cpp:482:8:482:9 | s4 | | -| string.cpp:478:29:478:30 | s4 | string.cpp:478:32:478:34 | call to end | TAINT | -| string.cpp:478:32:478:34 | call to end | string.cpp:478:8:478:8 | ref arg f | TAINT | -| string.cpp:478:32:478:34 | call to end | string.cpp:478:10:478:15 | call to append | TAINT | -| string.cpp:481:8:481:9 | ref arg s4 | string.cpp:482:8:482:9 | s4 | | -| string.cpp:481:8:481:9 | s4 | string.cpp:481:11:481:16 | call to append | TAINT | -| string.cpp:481:18:481:19 | ref arg s3 | string.cpp:481:30:481:31 | s3 | | -| string.cpp:481:18:481:19 | s3 | string.cpp:481:21:481:25 | call to begin | TAINT | -| string.cpp:481:21:481:25 | call to begin | string.cpp:481:8:481:9 | ref arg s4 | TAINT | -| string.cpp:481:21:481:25 | call to begin | string.cpp:481:11:481:16 | call to append | TAINT | -| string.cpp:481:30:481:31 | s3 | string.cpp:481:33:481:35 | call to end | TAINT | -| string.cpp:481:33:481:35 | call to end | string.cpp:481:8:481:9 | ref arg s4 | TAINT | -| string.cpp:481:33:481:35 | call to end | string.cpp:481:11:481:16 | call to append | TAINT | -| string.cpp:486:17:486:20 | gg | string.cpp:486:17:486:21 | call to basic_string | TAINT | -| string.cpp:486:17:486:21 | call to basic_string | string.cpp:491:8:491:8 | g | | -| string.cpp:486:17:486:21 | call to basic_string | string.cpp:492:8:492:8 | g | | -| string.cpp:487:17:487:20 | hh | string.cpp:487:17:487:21 | call to basic_string | TAINT | -| string.cpp:487:17:487:21 | call to basic_string | string.cpp:494:8:494:8 | h | | -| string.cpp:487:17:487:21 | call to basic_string | string.cpp:495:8:495:8 | h | | -| string.cpp:488:18:488:21 | 55 | string.cpp:488:18:488:22 | call to basic_string | TAINT | -| string.cpp:488:18:488:22 | call to basic_string | string.cpp:491:17:491:18 | s5 | | -| string.cpp:488:18:488:22 | call to basic_string | string.cpp:491:30:491:31 | s5 | | -| string.cpp:488:18:488:22 | call to basic_string | string.cpp:497:18:497:19 | s5 | | -| string.cpp:488:18:488:22 | call to basic_string | string.cpp:497:31:497:32 | s5 | | -| string.cpp:489:18:489:23 | call to source | string.cpp:489:18:489:26 | call to basic_string | TAINT | -| string.cpp:489:18:489:26 | call to basic_string | string.cpp:494:17:494:18 | s6 | | -| string.cpp:489:18:489:26 | call to basic_string | string.cpp:494:30:494:31 | s6 | | -| string.cpp:489:18:489:26 | call to basic_string | string.cpp:497:8:497:9 | s6 | | -| string.cpp:489:18:489:26 | call to basic_string | string.cpp:498:8:498:9 | s6 | | -| string.cpp:491:8:491:8 | ref arg g | string.cpp:492:8:492:8 | g | | -| string.cpp:491:17:491:18 | s5 | string.cpp:491:20:491:25 | call to cbegin | TAINT | -| string.cpp:491:20:491:25 | call to cbegin | string.cpp:491:8:491:8 | ref arg g | TAINT | -| string.cpp:491:20:491:25 | call to cbegin | string.cpp:491:10:491:15 | call to assign | TAINT | -| string.cpp:491:30:491:31 | s5 | string.cpp:491:33:491:36 | call to cend | TAINT | -| string.cpp:491:33:491:36 | call to cend | string.cpp:491:8:491:8 | ref arg g | TAINT | -| string.cpp:491:33:491:36 | call to cend | string.cpp:491:10:491:15 | call to assign | TAINT | -| string.cpp:494:8:494:8 | ref arg h | string.cpp:495:8:495:8 | h | | -| string.cpp:494:17:494:18 | s6 | string.cpp:494:20:494:25 | call to cbegin | TAINT | -| string.cpp:494:20:494:25 | call to cbegin | string.cpp:494:8:494:8 | ref arg h | TAINT | -| string.cpp:494:20:494:25 | call to cbegin | string.cpp:494:10:494:15 | call to assign | TAINT | -| string.cpp:494:30:494:31 | s6 | string.cpp:494:33:494:36 | call to cend | TAINT | -| string.cpp:494:33:494:36 | call to cend | string.cpp:494:8:494:8 | ref arg h | TAINT | -| string.cpp:494:33:494:36 | call to cend | string.cpp:494:10:494:15 | call to assign | TAINT | -| string.cpp:497:8:497:9 | ref arg s6 | string.cpp:498:8:498:9 | s6 | | -| string.cpp:497:18:497:19 | s5 | string.cpp:497:21:497:26 | call to cbegin | TAINT | -| string.cpp:497:21:497:26 | call to cbegin | string.cpp:497:8:497:9 | ref arg s6 | TAINT | -| string.cpp:497:21:497:26 | call to cbegin | string.cpp:497:11:497:16 | call to assign | TAINT | -| string.cpp:497:31:497:32 | s5 | string.cpp:497:34:497:37 | call to cend | TAINT | -| string.cpp:497:34:497:37 | call to cend | string.cpp:497:8:497:9 | ref arg s6 | TAINT | -| string.cpp:497:34:497:37 | call to cend | string.cpp:497:11:497:16 | call to assign | TAINT | -| string.cpp:503:14:503:18 | abc | string.cpp:505:17:505:19 | cs1 | | -| string.cpp:504:14:504:19 | call to source | string.cpp:506:17:506:19 | cs2 | | -| string.cpp:505:17:505:19 | cs1 | string.cpp:505:17:505:20 | call to basic_string | TAINT | -| string.cpp:505:17:505:20 | call to basic_string | string.cpp:507:17:507:18 | s1 | | -| string.cpp:505:17:505:20 | call to basic_string | string.cpp:507:29:507:30 | s1 | | -| string.cpp:505:17:505:20 | call to basic_string | string.cpp:510:7:510:8 | s1 | | -| string.cpp:506:17:506:19 | cs2 | string.cpp:506:17:506:20 | call to basic_string | TAINT | -| string.cpp:506:17:506:20 | call to basic_string | string.cpp:508:17:508:18 | s2 | | -| string.cpp:506:17:506:20 | call to basic_string | string.cpp:508:29:508:30 | s2 | | -| string.cpp:506:17:506:20 | call to basic_string | string.cpp:511:7:511:8 | s2 | | -| string.cpp:507:17:507:18 | ref arg s1 | string.cpp:507:29:507:30 | s1 | | -| string.cpp:507:17:507:18 | ref arg s1 | string.cpp:510:7:510:8 | s1 | | -| string.cpp:507:17:507:18 | s1 | string.cpp:507:20:507:24 | call to begin | TAINT | -| string.cpp:507:17:507:37 | call to basic_string | string.cpp:512:7:512:8 | s3 | | -| string.cpp:507:20:507:24 | call to begin | string.cpp:507:17:507:37 | call to basic_string | TAINT | -| string.cpp:507:29:507:30 | ref arg s1 | string.cpp:510:7:510:8 | s1 | | -| string.cpp:507:29:507:30 | s1 | string.cpp:507:32:507:34 | call to end | TAINT | -| string.cpp:507:32:507:34 | call to end | string.cpp:507:17:507:37 | call to basic_string | TAINT | -| string.cpp:508:17:508:18 | ref arg s2 | string.cpp:508:29:508:30 | s2 | | -| string.cpp:508:17:508:18 | ref arg s2 | string.cpp:511:7:511:8 | s2 | | -| string.cpp:508:17:508:18 | s2 | string.cpp:508:20:508:24 | call to begin | TAINT | -| string.cpp:508:17:508:37 | call to basic_string | string.cpp:513:7:513:8 | s4 | | +| string.cpp:330:16:330:21 | call to basic_string | string.cpp:334:7:334:7 | b | | +| string.cpp:330:16:330:21 | call to basic_string | string.cpp:338:2:338:2 | b | | +| string.cpp:330:16:330:21 | call to basic_string | string.cpp:342:7:342:7 | b | | +| string.cpp:331:16:331:20 | 123 | string.cpp:331:16:331:21 | call to basic_string | TAINT | +| string.cpp:331:16:331:21 | call to basic_string | string.cpp:335:7:335:7 | c | | +| string.cpp:331:16:331:21 | call to basic_string | string.cpp:339:2:339:2 | c | | +| string.cpp:331:16:331:21 | call to basic_string | string.cpp:343:7:343:7 | c | | +| string.cpp:337:2:337:2 | a | string.cpp:337:3:337:3 | call to operator[] | TAINT | +| string.cpp:337:2:337:2 | ref arg a | string.cpp:339:9:339:9 | a | | +| string.cpp:337:2:337:2 | ref arg a | string.cpp:341:7:341:7 | a | | +| string.cpp:337:2:337:25 | ... = ... | string.cpp:337:3:337:3 | call to operator[] [post update] | | +| string.cpp:337:3:337:3 | call to operator[] [post update] | string.cpp:337:2:337:2 | ref arg a | TAINT | +| string.cpp:337:9:337:23 | call to source | string.cpp:337:2:337:25 | ... = ... | | +| string.cpp:338:2:338:2 | b | string.cpp:338:4:338:5 | call to at | TAINT | +| string.cpp:338:2:338:2 | ref arg b | string.cpp:342:7:342:7 | b | | +| string.cpp:338:2:338:28 | ... = ... | string.cpp:338:4:338:5 | call to at [post update] | | +| string.cpp:338:4:338:5 | call to at [post update] | string.cpp:338:2:338:2 | ref arg b | TAINT | +| string.cpp:338:12:338:26 | call to source | string.cpp:338:2:338:28 | ... = ... | | +| string.cpp:339:2:339:2 | c | string.cpp:339:3:339:3 | call to operator[] | TAINT | +| string.cpp:339:2:339:2 | ref arg c | string.cpp:343:7:343:7 | c | | +| string.cpp:339:2:339:12 | ... = ... | string.cpp:339:3:339:3 | call to operator[] [post update] | | +| string.cpp:339:3:339:3 | call to operator[] [post update] | string.cpp:339:2:339:2 | ref arg c | TAINT | +| string.cpp:339:9:339:9 | a | string.cpp:339:10:339:10 | call to operator[] | TAINT | +| string.cpp:339:9:339:9 | ref arg a | string.cpp:341:7:341:7 | a | | +| string.cpp:339:10:339:10 | call to operator[] | string.cpp:339:2:339:12 | ... = ... | | +| string.cpp:348:18:348:22 | 123 | string.cpp:348:18:348:23 | call to basic_string | TAINT | +| string.cpp:348:18:348:23 | call to basic_string | string.cpp:350:2:350:4 | str | | +| string.cpp:348:18:348:23 | call to basic_string | string.cpp:351:7:351:9 | str | | +| string.cpp:348:18:348:23 | call to basic_string | string.cpp:352:7:352:9 | str | | +| string.cpp:350:2:350:4 | ref arg str | string.cpp:351:7:351:9 | str | | +| string.cpp:350:2:350:4 | ref arg str | string.cpp:352:7:352:9 | str | | +| string.cpp:350:2:350:4 | str | string.cpp:350:6:350:9 | call to data | TAINT | +| string.cpp:350:2:350:14 | access to array [post update] | string.cpp:350:6:350:9 | call to data [inner post update] | | +| string.cpp:350:2:350:34 | ... = ... | string.cpp:350:2:350:14 | access to array [post update] | | +| string.cpp:350:6:350:9 | call to data | string.cpp:350:2:350:14 | access to array | TAINT | +| string.cpp:350:6:350:9 | call to data [inner post update] | string.cpp:350:2:350:4 | ref arg str | TAINT | +| string.cpp:350:13:350:13 | 1 | string.cpp:350:2:350:14 | access to array | TAINT | +| string.cpp:350:18:350:32 | call to source | string.cpp:350:2:350:34 | ... = ... | | +| string.cpp:352:7:352:9 | str | string.cpp:352:11:352:14 | call to data | TAINT | +| string.cpp:358:18:358:24 | hello | string.cpp:358:18:358:25 | call to basic_string | TAINT | +| string.cpp:358:18:358:25 | call to basic_string | string.cpp:363:8:363:9 | s1 | | +| string.cpp:358:18:358:25 | call to basic_string | string.cpp:364:8:364:9 | s1 | | +| string.cpp:358:18:358:25 | call to basic_string | string.cpp:365:8:365:9 | s1 | | +| string.cpp:359:18:359:23 | call to source | string.cpp:359:18:359:26 | call to basic_string | TAINT | +| string.cpp:359:18:359:26 | call to basic_string | string.cpp:364:18:364:19 | s2 | | +| string.cpp:359:18:359:26 | call to basic_string | string.cpp:364:30:364:31 | s2 | | +| string.cpp:360:18:360:24 | hello | string.cpp:360:18:360:25 | call to basic_string | TAINT | +| string.cpp:360:18:360:25 | call to basic_string | string.cpp:367:8:367:9 | s3 | | +| string.cpp:360:18:360:25 | call to basic_string | string.cpp:368:8:368:9 | s3 | | +| string.cpp:360:18:360:25 | call to basic_string | string.cpp:369:8:369:9 | s3 | | +| string.cpp:361:18:361:24 | world | string.cpp:361:18:361:25 | call to basic_string | TAINT | +| string.cpp:361:18:361:25 | call to basic_string | string.cpp:368:18:368:19 | s4 | | +| string.cpp:361:18:361:25 | call to basic_string | string.cpp:368:30:368:31 | s4 | | +| string.cpp:364:8:364:9 | ref arg s1 | string.cpp:365:8:365:9 | s1 | | +| string.cpp:364:8:364:9 | s1 | string.cpp:364:11:364:16 | call to append | TAINT | +| string.cpp:364:18:364:19 | ref arg s2 | string.cpp:364:30:364:31 | s2 | | +| string.cpp:364:18:364:19 | s2 | string.cpp:364:21:364:25 | call to begin | TAINT | +| string.cpp:364:21:364:25 | call to begin | string.cpp:364:8:364:9 | ref arg s1 | TAINT | +| string.cpp:364:21:364:25 | call to begin | string.cpp:364:11:364:16 | call to append | TAINT | +| string.cpp:364:30:364:31 | s2 | string.cpp:364:33:364:35 | call to end | TAINT | +| string.cpp:364:33:364:35 | call to end | string.cpp:364:8:364:9 | ref arg s1 | TAINT | +| string.cpp:364:33:364:35 | call to end | string.cpp:364:11:364:16 | call to append | TAINT | +| string.cpp:368:8:368:9 | ref arg s3 | string.cpp:369:8:369:9 | s3 | | +| string.cpp:368:8:368:9 | s3 | string.cpp:368:11:368:16 | call to append | TAINT | +| string.cpp:368:18:368:19 | ref arg s4 | string.cpp:368:30:368:31 | s4 | | +| string.cpp:368:18:368:19 | s4 | string.cpp:368:21:368:25 | call to begin | TAINT | +| string.cpp:368:21:368:25 | call to begin | string.cpp:368:8:368:9 | ref arg s3 | TAINT | +| string.cpp:368:21:368:25 | call to begin | string.cpp:368:11:368:16 | call to append | TAINT | +| string.cpp:368:30:368:31 | s4 | string.cpp:368:33:368:35 | call to end | TAINT | +| string.cpp:368:33:368:35 | call to end | string.cpp:368:8:368:9 | ref arg s3 | TAINT | +| string.cpp:368:33:368:35 | call to end | string.cpp:368:11:368:16 | call to append | TAINT | +| string.cpp:374:18:374:24 | hello | string.cpp:374:18:374:25 | call to basic_string | TAINT | +| string.cpp:374:18:374:25 | call to basic_string | string.cpp:377:28:377:29 | s1 | | +| string.cpp:375:18:375:23 | call to source | string.cpp:375:18:375:26 | call to basic_string | TAINT | +| string.cpp:375:18:375:26 | call to basic_string | string.cpp:381:28:381:29 | s2 | | +| string.cpp:377:28:377:29 | s1 | string.cpp:377:31:377:35 | call to begin | TAINT | +| string.cpp:377:31:377:35 | call to begin | string.cpp:379:9:379:13 | iter1 | | +| string.cpp:377:31:377:35 | call to begin | string.cpp:380:8:380:12 | iter1 | | +| string.cpp:379:9:379:13 | iter1 | string.cpp:379:8:379:8 | call to operator* | TAINT | +| string.cpp:379:9:379:13 | ref arg iter1 | string.cpp:380:8:380:12 | iter1 | | +| string.cpp:380:8:380:12 | iter1 | string.cpp:380:13:380:13 | call to operator[] | TAINT | +| string.cpp:381:28:381:29 | s2 | string.cpp:381:31:381:35 | call to begin | TAINT | +| string.cpp:381:31:381:35 | call to begin | string.cpp:383:9:383:13 | iter2 | | +| string.cpp:381:31:381:35 | call to begin | string.cpp:384:8:384:12 | iter2 | | +| string.cpp:383:9:383:13 | iter2 | string.cpp:383:8:383:8 | call to operator* | TAINT | +| string.cpp:383:9:383:13 | ref arg iter2 | string.cpp:384:8:384:12 | iter2 | | +| string.cpp:384:8:384:12 | iter2 | string.cpp:384:13:384:13 | call to operator[] | TAINT | +| string.cpp:389:18:389:24 | hello | string.cpp:389:18:389:25 | call to basic_string | TAINT | +| string.cpp:389:18:389:25 | call to basic_string | string.cpp:392:25:392:26 | s1 | | +| string.cpp:390:18:390:23 | call to source | string.cpp:390:18:390:26 | call to basic_string | TAINT | +| string.cpp:390:18:390:26 | call to basic_string | string.cpp:394:25:394:26 | s2 | | +| string.cpp:390:18:390:26 | call to basic_string | string.cpp:414:8:414:9 | s2 | | +| string.cpp:392:25:392:26 | s1 | string.cpp:392:28:392:32 | call to begin | TAINT | +| string.cpp:394:25:394:26 | ref arg s2 | string.cpp:414:8:414:9 | s2 | | +| string.cpp:394:25:394:26 | s2 | string.cpp:394:28:394:32 | call to begin | TAINT | +| string.cpp:394:28:394:32 | call to begin | string.cpp:397:10:397:11 | i2 | | +| string.cpp:394:28:394:32 | call to begin | string.cpp:398:10:398:11 | i2 | | +| string.cpp:394:28:394:32 | call to begin | string.cpp:399:8:399:9 | i2 | | +| string.cpp:394:28:394:32 | call to begin | string.cpp:401:8:401:9 | i2 | | +| string.cpp:394:28:394:32 | call to begin | string.cpp:403:8:403:9 | i2 | | +| string.cpp:394:28:394:32 | call to begin | string.cpp:406:8:406:9 | i2 | | +| string.cpp:394:28:394:32 | call to begin | string.cpp:409:8:409:9 | i2 | | +| string.cpp:394:28:394:32 | call to begin | string.cpp:411:8:411:9 | i2 | | +| string.cpp:394:28:394:32 | call to begin | string.cpp:418:9:418:10 | i2 | | +| string.cpp:394:28:394:32 | call to begin | string.cpp:421:9:421:10 | i2 | | +| string.cpp:397:10:397:11 | i2 | string.cpp:397:12:397:12 | call to operator+ | TAINT | +| string.cpp:397:10:397:11 | ref arg i2 | string.cpp:398:10:398:11 | i2 | | +| string.cpp:397:10:397:11 | ref arg i2 | string.cpp:399:8:399:9 | i2 | | +| string.cpp:397:10:397:11 | ref arg i2 | string.cpp:401:8:401:9 | i2 | | +| string.cpp:397:10:397:11 | ref arg i2 | string.cpp:403:8:403:9 | i2 | | +| string.cpp:397:10:397:11 | ref arg i2 | string.cpp:406:8:406:9 | i2 | | +| string.cpp:397:10:397:11 | ref arg i2 | string.cpp:409:8:409:9 | i2 | | +| string.cpp:397:10:397:11 | ref arg i2 | string.cpp:411:8:411:9 | i2 | | +| string.cpp:397:10:397:11 | ref arg i2 | string.cpp:418:9:418:10 | i2 | | +| string.cpp:397:10:397:11 | ref arg i2 | string.cpp:421:9:421:10 | i2 | | +| string.cpp:397:12:397:12 | call to operator+ | string.cpp:397:8:397:8 | call to operator* | TAINT | +| string.cpp:398:10:398:11 | i2 | string.cpp:398:12:398:12 | call to operator- | TAINT | +| string.cpp:398:10:398:11 | ref arg i2 | string.cpp:399:8:399:9 | i2 | | +| string.cpp:398:10:398:11 | ref arg i2 | string.cpp:401:8:401:9 | i2 | | +| string.cpp:398:10:398:11 | ref arg i2 | string.cpp:403:8:403:9 | i2 | | +| string.cpp:398:10:398:11 | ref arg i2 | string.cpp:406:8:406:9 | i2 | | +| string.cpp:398:10:398:11 | ref arg i2 | string.cpp:409:8:409:9 | i2 | | +| string.cpp:398:10:398:11 | ref arg i2 | string.cpp:411:8:411:9 | i2 | | +| string.cpp:398:10:398:11 | ref arg i2 | string.cpp:418:9:418:10 | i2 | | +| string.cpp:398:10:398:11 | ref arg i2 | string.cpp:421:9:421:10 | i2 | | +| string.cpp:398:12:398:12 | call to operator- | string.cpp:398:8:398:8 | call to operator* | TAINT | +| string.cpp:399:8:399:9 | i2 | string.cpp:399:3:399:9 | ... = ... | | +| string.cpp:399:8:399:9 | i2 | string.cpp:400:12:400:13 | i3 | | +| string.cpp:400:10:400:10 | call to operator++ | string.cpp:400:8:400:8 | call to operator* | TAINT | +| string.cpp:400:10:400:10 | ref arg call to operator++ | string.cpp:400:12:400:13 | ref arg i3 | | +| string.cpp:400:12:400:13 | i3 | string.cpp:400:10:400:10 | call to operator++ | | +| string.cpp:401:8:401:9 | i2 | string.cpp:401:3:401:9 | ... = ... | | +| string.cpp:401:8:401:9 | i2 | string.cpp:402:12:402:13 | i4 | | +| string.cpp:402:10:402:10 | call to operator-- | string.cpp:402:8:402:8 | call to operator* | TAINT | +| string.cpp:402:10:402:10 | ref arg call to operator-- | string.cpp:402:12:402:13 | ref arg i4 | | +| string.cpp:402:12:402:13 | i4 | string.cpp:402:10:402:10 | call to operator-- | | +| string.cpp:403:8:403:9 | i2 | string.cpp:403:3:403:9 | ... = ... | | +| string.cpp:403:8:403:9 | i2 | string.cpp:404:3:404:4 | i5 | | +| string.cpp:403:8:403:9 | i2 | string.cpp:405:9:405:10 | i5 | | +| string.cpp:404:3:404:4 | i5 | string.cpp:404:5:404:5 | call to operator++ | | +| string.cpp:404:3:404:4 | ref arg i5 | string.cpp:405:9:405:10 | i5 | | +| string.cpp:405:9:405:10 | i5 | string.cpp:405:8:405:8 | call to operator* | TAINT | +| string.cpp:406:8:406:9 | i2 | string.cpp:406:3:406:9 | ... = ... | | +| string.cpp:406:8:406:9 | i2 | string.cpp:407:3:407:4 | i6 | | +| string.cpp:406:8:406:9 | i2 | string.cpp:408:9:408:10 | i6 | | +| string.cpp:407:3:407:4 | i6 | string.cpp:407:5:407:5 | call to operator-- | | +| string.cpp:407:3:407:4 | ref arg i6 | string.cpp:408:9:408:10 | i6 | | +| string.cpp:408:9:408:10 | i6 | string.cpp:408:8:408:8 | call to operator* | TAINT | +| string.cpp:409:8:409:9 | i2 | string.cpp:409:3:409:9 | ... = ... | | +| string.cpp:409:8:409:9 | i2 | string.cpp:410:10:410:11 | i7 | | +| string.cpp:410:10:410:11 | i7 | string.cpp:410:12:410:12 | call to operator+= | TAINT | +| string.cpp:410:12:410:12 | call to operator+= | string.cpp:410:8:410:8 | call to operator* | TAINT | +| string.cpp:410:12:410:12 | ref arg call to operator+= | string.cpp:410:10:410:11 | ref arg i7 | TAINT | +| string.cpp:410:14:410:14 | 1 | string.cpp:410:10:410:11 | ref arg i7 | TAINT | +| string.cpp:411:8:411:9 | i2 | string.cpp:411:3:411:9 | ... = ... | | +| string.cpp:411:8:411:9 | i2 | string.cpp:412:10:412:11 | i8 | | +| string.cpp:412:10:412:11 | i8 | string.cpp:412:12:412:12 | call to operator-= | TAINT | +| string.cpp:412:12:412:12 | call to operator-= | string.cpp:412:8:412:8 | call to operator* | TAINT | +| string.cpp:412:12:412:12 | ref arg call to operator-= | string.cpp:412:10:412:11 | ref arg i8 | TAINT | +| string.cpp:412:14:412:14 | 1 | string.cpp:412:10:412:11 | ref arg i8 | TAINT | +| string.cpp:414:8:414:9 | s2 | string.cpp:414:11:414:13 | call to end | TAINT | +| string.cpp:414:11:414:13 | call to end | string.cpp:414:3:414:15 | ... = ... | | +| string.cpp:414:11:414:13 | call to end | string.cpp:415:5:415:6 | i9 | | +| string.cpp:414:11:414:13 | call to end | string.cpp:416:9:416:10 | i9 | | +| string.cpp:415:5:415:6 | i9 | string.cpp:415:3:415:3 | call to operator-- | | +| string.cpp:415:5:415:6 | ref arg i9 | string.cpp:416:9:416:10 | i9 | | +| string.cpp:416:9:416:10 | i9 | string.cpp:416:8:416:8 | call to operator* | TAINT | +| string.cpp:418:9:418:10 | i2 | string.cpp:418:3:418:10 | ... = ... | | +| string.cpp:418:9:418:10 | i2 | string.cpp:419:10:419:12 | i10 | | +| string.cpp:418:9:418:10 | i2 | string.cpp:420:8:420:10 | i10 | | +| string.cpp:419:10:419:12 | i10 | string.cpp:419:13:419:13 | call to operator++ | | +| string.cpp:419:10:419:12 | ref arg i10 | string.cpp:420:8:420:10 | i10 | | +| string.cpp:419:13:419:13 | call to operator++ | string.cpp:419:8:419:8 | call to operator* | TAINT | +| string.cpp:420:8:420:10 | i10 | string.cpp:420:8:420:10 | call to iterator | | +| string.cpp:421:9:421:10 | i2 | string.cpp:421:3:421:10 | ... = ... | | +| string.cpp:421:9:421:10 | i2 | string.cpp:422:10:422:12 | i11 | | +| string.cpp:421:9:421:10 | i2 | string.cpp:423:8:423:10 | i11 | | +| string.cpp:422:10:422:12 | i11 | string.cpp:422:13:422:13 | call to operator-- | | +| string.cpp:422:10:422:12 | ref arg i11 | string.cpp:423:8:423:10 | i11 | | +| string.cpp:422:13:422:13 | call to operator-- | string.cpp:422:8:422:8 | call to operator* | TAINT | +| string.cpp:423:8:423:10 | i11 | string.cpp:423:8:423:10 | call to iterator | | +| string.cpp:429:17:429:20 | aa | string.cpp:429:17:429:21 | call to basic_string | TAINT | +| string.cpp:429:17:429:21 | call to basic_string | string.cpp:434:7:434:8 | s1 | | +| string.cpp:429:17:429:21 | call to basic_string | string.cpp:435:7:435:8 | s1 | | +| string.cpp:430:17:430:20 | bb | string.cpp:430:17:430:21 | call to basic_string | TAINT | +| string.cpp:430:17:430:21 | call to basic_string | string.cpp:437:7:437:8 | s2 | | +| string.cpp:430:17:430:21 | call to basic_string | string.cpp:438:7:438:8 | s2 | | +| string.cpp:431:14:431:17 | cc | string.cpp:434:20:434:22 | cs1 | | +| string.cpp:432:14:432:19 | call to source | string.cpp:437:20:437:22 | cs2 | | +| string.cpp:434:7:434:8 | ref arg s1 | string.cpp:435:7:435:8 | s1 | | +| string.cpp:434:7:434:8 | s1 | string.cpp:434:10:434:15 | call to insert | TAINT | +| string.cpp:434:20:434:22 | cs1 | string.cpp:434:7:434:8 | ref arg s1 | TAINT | +| string.cpp:434:20:434:22 | cs1 | string.cpp:434:10:434:15 | call to insert | TAINT | +| string.cpp:437:7:437:8 | ref arg s2 | string.cpp:438:7:438:8 | s2 | | +| string.cpp:437:7:437:8 | s2 | string.cpp:437:10:437:15 | call to insert | TAINT | +| string.cpp:437:20:437:22 | cs2 | string.cpp:437:7:437:8 | ref arg s2 | TAINT | +| string.cpp:437:20:437:22 | cs2 | string.cpp:437:10:437:15 | call to insert | TAINT | +| string.cpp:444:17:444:20 | aa | string.cpp:444:17:444:21 | call to basic_string | TAINT | +| string.cpp:444:17:444:21 | call to basic_string | string.cpp:447:8:447:8 | a | | +| string.cpp:444:17:444:21 | call to basic_string | string.cpp:447:17:447:17 | a | | +| string.cpp:444:17:444:21 | call to basic_string | string.cpp:448:8:448:8 | a | | +| string.cpp:445:17:445:20 | bb | string.cpp:445:17:445:21 | call to basic_string | TAINT | +| string.cpp:445:17:445:21 | call to basic_string | string.cpp:450:8:450:8 | b | | +| string.cpp:445:17:445:21 | call to basic_string | string.cpp:450:17:450:17 | b | | +| string.cpp:445:17:445:21 | call to basic_string | string.cpp:451:8:451:8 | b | | +| string.cpp:447:8:447:8 | a | string.cpp:447:10:447:15 | call to insert | TAINT | +| string.cpp:447:8:447:8 | ref arg a | string.cpp:448:8:448:8 | a | | +| string.cpp:447:17:447:17 | a | string.cpp:447:19:447:23 | call to begin | TAINT | +| string.cpp:447:17:447:17 | ref arg a | string.cpp:447:8:447:8 | a | | +| string.cpp:447:17:447:17 | ref arg a | string.cpp:448:8:448:8 | a | | +| string.cpp:447:17:447:25 | call to iterator | string.cpp:447:8:447:8 | ref arg a | TAINT | +| string.cpp:447:17:447:25 | call to iterator | string.cpp:447:10:447:15 | call to insert | TAINT | +| string.cpp:447:19:447:23 | call to begin | string.cpp:447:17:447:25 | call to iterator | TAINT | +| string.cpp:447:32:447:34 | 120 | string.cpp:447:8:447:8 | ref arg a | TAINT | +| string.cpp:447:32:447:34 | 120 | string.cpp:447:10:447:15 | call to insert | TAINT | +| string.cpp:450:8:450:8 | b | string.cpp:450:10:450:15 | call to insert | TAINT | +| string.cpp:450:8:450:8 | ref arg b | string.cpp:451:8:451:8 | b | | +| string.cpp:450:17:450:17 | b | string.cpp:450:19:450:23 | call to begin | TAINT | +| string.cpp:450:17:450:17 | ref arg b | string.cpp:450:8:450:8 | b | | +| string.cpp:450:17:450:17 | ref arg b | string.cpp:451:8:451:8 | b | | +| string.cpp:450:17:450:25 | call to iterator | string.cpp:450:8:450:8 | ref arg b | TAINT | +| string.cpp:450:17:450:25 | call to iterator | string.cpp:450:10:450:15 | call to insert | TAINT | +| string.cpp:450:19:450:23 | call to begin | string.cpp:450:17:450:25 | call to iterator | TAINT | +| string.cpp:450:32:450:46 | call to source | string.cpp:450:8:450:8 | ref arg b | TAINT | +| string.cpp:450:32:450:46 | call to source | string.cpp:450:10:450:15 | call to insert | TAINT | +| string.cpp:455:17:455:20 | cc | string.cpp:455:17:455:21 | call to basic_string | TAINT | +| string.cpp:455:17:455:21 | call to basic_string | string.cpp:460:8:460:8 | c | | +| string.cpp:455:17:455:21 | call to basic_string | string.cpp:460:17:460:17 | c | | +| string.cpp:455:17:455:21 | call to basic_string | string.cpp:461:8:461:8 | c | | +| string.cpp:456:17:456:20 | dd | string.cpp:456:17:456:21 | call to basic_string | TAINT | +| string.cpp:456:17:456:21 | call to basic_string | string.cpp:463:8:463:8 | d | | +| string.cpp:456:17:456:21 | call to basic_string | string.cpp:463:17:463:17 | d | | +| string.cpp:456:17:456:21 | call to basic_string | string.cpp:464:8:464:8 | d | | +| string.cpp:457:18:457:21 | 11 | string.cpp:457:18:457:22 | call to basic_string | TAINT | +| string.cpp:457:18:457:22 | call to basic_string | string.cpp:460:26:460:27 | s1 | | +| string.cpp:457:18:457:22 | call to basic_string | string.cpp:460:38:460:39 | s1 | | +| string.cpp:457:18:457:22 | call to basic_string | string.cpp:466:28:466:29 | s1 | | +| string.cpp:457:18:457:22 | call to basic_string | string.cpp:466:40:466:41 | s1 | | +| string.cpp:458:18:458:23 | call to source | string.cpp:458:18:458:26 | call to basic_string | TAINT | +| string.cpp:458:18:458:26 | call to basic_string | string.cpp:463:26:463:27 | s2 | | +| string.cpp:458:18:458:26 | call to basic_string | string.cpp:463:38:463:39 | s2 | | +| string.cpp:458:18:458:26 | call to basic_string | string.cpp:466:8:466:9 | s2 | | +| string.cpp:458:18:458:26 | call to basic_string | string.cpp:466:18:466:19 | s2 | | +| string.cpp:458:18:458:26 | call to basic_string | string.cpp:467:8:467:9 | s2 | | +| string.cpp:460:8:460:8 | c | string.cpp:460:10:460:15 | call to insert | TAINT | +| string.cpp:460:8:460:8 | ref arg c | string.cpp:461:8:461:8 | c | | +| string.cpp:460:17:460:17 | c | string.cpp:460:19:460:21 | call to end | TAINT | +| string.cpp:460:17:460:17 | ref arg c | string.cpp:460:8:460:8 | c | | +| string.cpp:460:17:460:17 | ref arg c | string.cpp:461:8:461:8 | c | | +| string.cpp:460:17:460:23 | call to iterator | string.cpp:460:8:460:8 | ref arg c | TAINT | +| string.cpp:460:17:460:23 | call to iterator | string.cpp:460:10:460:15 | call to insert | TAINT | +| string.cpp:460:19:460:21 | call to end | string.cpp:460:17:460:23 | call to iterator | TAINT | +| string.cpp:460:26:460:27 | ref arg s1 | string.cpp:460:38:460:39 | s1 | | +| string.cpp:460:26:460:27 | ref arg s1 | string.cpp:466:28:466:29 | s1 | | +| string.cpp:460:26:460:27 | ref arg s1 | string.cpp:466:40:466:41 | s1 | | +| string.cpp:460:26:460:27 | s1 | string.cpp:460:29:460:33 | call to begin | TAINT | +| string.cpp:460:29:460:33 | call to begin | string.cpp:460:8:460:8 | ref arg c | TAINT | +| string.cpp:460:29:460:33 | call to begin | string.cpp:460:10:460:15 | call to insert | TAINT | +| string.cpp:460:38:460:39 | ref arg s1 | string.cpp:466:28:466:29 | s1 | | +| string.cpp:460:38:460:39 | ref arg s1 | string.cpp:466:40:466:41 | s1 | | +| string.cpp:460:38:460:39 | s1 | string.cpp:460:41:460:43 | call to end | TAINT | +| string.cpp:460:41:460:43 | call to end | string.cpp:460:8:460:8 | ref arg c | TAINT | +| string.cpp:460:41:460:43 | call to end | string.cpp:460:10:460:15 | call to insert | TAINT | +| string.cpp:463:8:463:8 | d | string.cpp:463:10:463:15 | call to insert | TAINT | +| string.cpp:463:8:463:8 | ref arg d | string.cpp:464:8:464:8 | d | | +| string.cpp:463:17:463:17 | d | string.cpp:463:19:463:21 | call to end | TAINT | +| string.cpp:463:17:463:17 | ref arg d | string.cpp:463:8:463:8 | d | | +| string.cpp:463:17:463:17 | ref arg d | string.cpp:464:8:464:8 | d | | +| string.cpp:463:17:463:23 | call to iterator | string.cpp:463:8:463:8 | ref arg d | TAINT | +| string.cpp:463:17:463:23 | call to iterator | string.cpp:463:10:463:15 | call to insert | TAINT | +| string.cpp:463:19:463:21 | call to end | string.cpp:463:17:463:23 | call to iterator | TAINT | +| string.cpp:463:26:463:27 | ref arg s2 | string.cpp:463:38:463:39 | s2 | | +| string.cpp:463:26:463:27 | ref arg s2 | string.cpp:466:8:466:9 | s2 | | +| string.cpp:463:26:463:27 | ref arg s2 | string.cpp:466:18:466:19 | s2 | | +| string.cpp:463:26:463:27 | ref arg s2 | string.cpp:467:8:467:9 | s2 | | +| string.cpp:463:26:463:27 | s2 | string.cpp:463:29:463:33 | call to begin | TAINT | +| string.cpp:463:29:463:33 | call to begin | string.cpp:463:8:463:8 | ref arg d | TAINT | +| string.cpp:463:29:463:33 | call to begin | string.cpp:463:10:463:15 | call to insert | TAINT | +| string.cpp:463:38:463:39 | ref arg s2 | string.cpp:466:8:466:9 | s2 | | +| string.cpp:463:38:463:39 | ref arg s2 | string.cpp:466:18:466:19 | s2 | | +| string.cpp:463:38:463:39 | ref arg s2 | string.cpp:467:8:467:9 | s2 | | +| string.cpp:463:38:463:39 | s2 | string.cpp:463:41:463:43 | call to end | TAINT | +| string.cpp:463:41:463:43 | call to end | string.cpp:463:8:463:8 | ref arg d | TAINT | +| string.cpp:463:41:463:43 | call to end | string.cpp:463:10:463:15 | call to insert | TAINT | +| string.cpp:466:8:466:9 | ref arg s2 | string.cpp:467:8:467:9 | s2 | | +| string.cpp:466:8:466:9 | s2 | string.cpp:466:11:466:16 | call to insert | TAINT | +| string.cpp:466:18:466:19 | ref arg s2 | string.cpp:466:8:466:9 | s2 | | +| string.cpp:466:18:466:19 | ref arg s2 | string.cpp:467:8:467:9 | s2 | | +| string.cpp:466:18:466:19 | s2 | string.cpp:466:21:466:23 | call to end | TAINT | +| string.cpp:466:18:466:25 | call to iterator | string.cpp:466:8:466:9 | ref arg s2 | TAINT | +| string.cpp:466:18:466:25 | call to iterator | string.cpp:466:11:466:16 | call to insert | TAINT | +| string.cpp:466:21:466:23 | call to end | string.cpp:466:18:466:25 | call to iterator | TAINT | +| string.cpp:466:28:466:29 | ref arg s1 | string.cpp:466:40:466:41 | s1 | | +| string.cpp:466:28:466:29 | s1 | string.cpp:466:31:466:35 | call to begin | TAINT | +| string.cpp:466:31:466:35 | call to begin | string.cpp:466:8:466:9 | ref arg s2 | TAINT | +| string.cpp:466:31:466:35 | call to begin | string.cpp:466:11:466:16 | call to insert | TAINT | +| string.cpp:466:40:466:41 | s1 | string.cpp:466:43:466:45 | call to end | TAINT | +| string.cpp:466:43:466:45 | call to end | string.cpp:466:8:466:9 | ref arg s2 | TAINT | +| string.cpp:466:43:466:45 | call to end | string.cpp:466:11:466:16 | call to insert | TAINT | +| string.cpp:471:17:471:20 | ee | string.cpp:471:17:471:21 | call to basic_string | TAINT | +| string.cpp:471:17:471:21 | call to basic_string | string.cpp:476:8:476:8 | e | | +| string.cpp:471:17:471:21 | call to basic_string | string.cpp:477:8:477:8 | e | | +| string.cpp:472:17:472:20 | ff | string.cpp:472:17:472:21 | call to basic_string | TAINT | +| string.cpp:472:17:472:21 | call to basic_string | string.cpp:479:8:479:8 | f | | +| string.cpp:472:17:472:21 | call to basic_string | string.cpp:480:8:480:8 | f | | +| string.cpp:473:18:473:21 | 33 | string.cpp:473:18:473:22 | call to basic_string | TAINT | +| string.cpp:473:18:473:22 | call to basic_string | string.cpp:476:17:476:18 | s3 | | +| string.cpp:473:18:473:22 | call to basic_string | string.cpp:476:29:476:30 | s3 | | +| string.cpp:473:18:473:22 | call to basic_string | string.cpp:482:18:482:19 | s3 | | +| string.cpp:473:18:473:22 | call to basic_string | string.cpp:482:30:482:31 | s3 | | +| string.cpp:474:18:474:23 | call to source | string.cpp:474:18:474:26 | call to basic_string | TAINT | +| string.cpp:474:18:474:26 | call to basic_string | string.cpp:479:17:479:18 | s4 | | +| string.cpp:474:18:474:26 | call to basic_string | string.cpp:479:29:479:30 | s4 | | +| string.cpp:474:18:474:26 | call to basic_string | string.cpp:482:8:482:9 | s4 | | +| string.cpp:474:18:474:26 | call to basic_string | string.cpp:483:8:483:9 | s4 | | +| string.cpp:476:8:476:8 | e | string.cpp:476:10:476:15 | call to append | TAINT | +| string.cpp:476:8:476:8 | ref arg e | string.cpp:477:8:477:8 | e | | +| string.cpp:476:17:476:18 | ref arg s3 | string.cpp:476:29:476:30 | s3 | | +| string.cpp:476:17:476:18 | ref arg s3 | string.cpp:482:18:482:19 | s3 | | +| string.cpp:476:17:476:18 | ref arg s3 | string.cpp:482:30:482:31 | s3 | | +| string.cpp:476:17:476:18 | s3 | string.cpp:476:20:476:24 | call to begin | TAINT | +| string.cpp:476:20:476:24 | call to begin | string.cpp:476:8:476:8 | ref arg e | TAINT | +| string.cpp:476:20:476:24 | call to begin | string.cpp:476:10:476:15 | call to append | TAINT | +| string.cpp:476:29:476:30 | ref arg s3 | string.cpp:482:18:482:19 | s3 | | +| string.cpp:476:29:476:30 | ref arg s3 | string.cpp:482:30:482:31 | s3 | | +| string.cpp:476:29:476:30 | s3 | string.cpp:476:32:476:34 | call to end | TAINT | +| string.cpp:476:32:476:34 | call to end | string.cpp:476:8:476:8 | ref arg e | TAINT | +| string.cpp:476:32:476:34 | call to end | string.cpp:476:10:476:15 | call to append | TAINT | +| string.cpp:479:8:479:8 | f | string.cpp:479:10:479:15 | call to append | TAINT | +| string.cpp:479:8:479:8 | ref arg f | string.cpp:480:8:480:8 | f | | +| string.cpp:479:17:479:18 | ref arg s4 | string.cpp:479:29:479:30 | s4 | | +| string.cpp:479:17:479:18 | ref arg s4 | string.cpp:482:8:482:9 | s4 | | +| string.cpp:479:17:479:18 | ref arg s4 | string.cpp:483:8:483:9 | s4 | | +| string.cpp:479:17:479:18 | s4 | string.cpp:479:20:479:24 | call to begin | TAINT | +| string.cpp:479:20:479:24 | call to begin | string.cpp:479:8:479:8 | ref arg f | TAINT | +| string.cpp:479:20:479:24 | call to begin | string.cpp:479:10:479:15 | call to append | TAINT | +| string.cpp:479:29:479:30 | ref arg s4 | string.cpp:482:8:482:9 | s4 | | +| string.cpp:479:29:479:30 | ref arg s4 | string.cpp:483:8:483:9 | s4 | | +| string.cpp:479:29:479:30 | s4 | string.cpp:479:32:479:34 | call to end | TAINT | +| string.cpp:479:32:479:34 | call to end | string.cpp:479:8:479:8 | ref arg f | TAINT | +| string.cpp:479:32:479:34 | call to end | string.cpp:479:10:479:15 | call to append | TAINT | +| string.cpp:482:8:482:9 | ref arg s4 | string.cpp:483:8:483:9 | s4 | | +| string.cpp:482:8:482:9 | s4 | string.cpp:482:11:482:16 | call to append | TAINT | +| string.cpp:482:18:482:19 | ref arg s3 | string.cpp:482:30:482:31 | s3 | | +| string.cpp:482:18:482:19 | s3 | string.cpp:482:21:482:25 | call to begin | TAINT | +| string.cpp:482:21:482:25 | call to begin | string.cpp:482:8:482:9 | ref arg s4 | TAINT | +| string.cpp:482:21:482:25 | call to begin | string.cpp:482:11:482:16 | call to append | TAINT | +| string.cpp:482:30:482:31 | s3 | string.cpp:482:33:482:35 | call to end | TAINT | +| string.cpp:482:33:482:35 | call to end | string.cpp:482:8:482:9 | ref arg s4 | TAINT | +| string.cpp:482:33:482:35 | call to end | string.cpp:482:11:482:16 | call to append | TAINT | +| string.cpp:487:17:487:20 | gg | string.cpp:487:17:487:21 | call to basic_string | TAINT | +| string.cpp:487:17:487:21 | call to basic_string | string.cpp:492:8:492:8 | g | | +| string.cpp:487:17:487:21 | call to basic_string | string.cpp:493:8:493:8 | g | | +| string.cpp:488:17:488:20 | hh | string.cpp:488:17:488:21 | call to basic_string | TAINT | +| string.cpp:488:17:488:21 | call to basic_string | string.cpp:495:8:495:8 | h | | +| string.cpp:488:17:488:21 | call to basic_string | string.cpp:496:8:496:8 | h | | +| string.cpp:489:18:489:21 | 55 | string.cpp:489:18:489:22 | call to basic_string | TAINT | +| string.cpp:489:18:489:22 | call to basic_string | string.cpp:492:17:492:18 | s5 | | +| string.cpp:489:18:489:22 | call to basic_string | string.cpp:492:30:492:31 | s5 | | +| string.cpp:489:18:489:22 | call to basic_string | string.cpp:498:18:498:19 | s5 | | +| string.cpp:489:18:489:22 | call to basic_string | string.cpp:498:31:498:32 | s5 | | +| string.cpp:490:18:490:23 | call to source | string.cpp:490:18:490:26 | call to basic_string | TAINT | +| string.cpp:490:18:490:26 | call to basic_string | string.cpp:495:17:495:18 | s6 | | +| string.cpp:490:18:490:26 | call to basic_string | string.cpp:495:30:495:31 | s6 | | +| string.cpp:490:18:490:26 | call to basic_string | string.cpp:498:8:498:9 | s6 | | +| string.cpp:490:18:490:26 | call to basic_string | string.cpp:499:8:499:9 | s6 | | +| string.cpp:492:8:492:8 | ref arg g | string.cpp:493:8:493:8 | g | | +| string.cpp:492:17:492:18 | s5 | string.cpp:492:20:492:25 | call to cbegin | TAINT | +| string.cpp:492:20:492:25 | call to cbegin | string.cpp:492:8:492:8 | ref arg g | TAINT | +| string.cpp:492:20:492:25 | call to cbegin | string.cpp:492:10:492:15 | call to assign | TAINT | +| string.cpp:492:30:492:31 | s5 | string.cpp:492:33:492:36 | call to cend | TAINT | +| string.cpp:492:33:492:36 | call to cend | string.cpp:492:8:492:8 | ref arg g | TAINT | +| string.cpp:492:33:492:36 | call to cend | string.cpp:492:10:492:15 | call to assign | TAINT | +| string.cpp:495:8:495:8 | ref arg h | string.cpp:496:8:496:8 | h | | +| string.cpp:495:17:495:18 | s6 | string.cpp:495:20:495:25 | call to cbegin | TAINT | +| string.cpp:495:20:495:25 | call to cbegin | string.cpp:495:8:495:8 | ref arg h | TAINT | +| string.cpp:495:20:495:25 | call to cbegin | string.cpp:495:10:495:15 | call to assign | TAINT | +| string.cpp:495:30:495:31 | s6 | string.cpp:495:33:495:36 | call to cend | TAINT | +| string.cpp:495:33:495:36 | call to cend | string.cpp:495:8:495:8 | ref arg h | TAINT | +| string.cpp:495:33:495:36 | call to cend | string.cpp:495:10:495:15 | call to assign | TAINT | +| string.cpp:498:8:498:9 | ref arg s6 | string.cpp:499:8:499:9 | s6 | | +| string.cpp:498:18:498:19 | s5 | string.cpp:498:21:498:26 | call to cbegin | TAINT | +| string.cpp:498:21:498:26 | call to cbegin | string.cpp:498:8:498:9 | ref arg s6 | TAINT | +| string.cpp:498:21:498:26 | call to cbegin | string.cpp:498:11:498:16 | call to assign | TAINT | +| string.cpp:498:31:498:32 | s5 | string.cpp:498:34:498:37 | call to cend | TAINT | +| string.cpp:498:34:498:37 | call to cend | string.cpp:498:8:498:9 | ref arg s6 | TAINT | +| string.cpp:498:34:498:37 | call to cend | string.cpp:498:11:498:16 | call to assign | TAINT | +| string.cpp:504:14:504:18 | abc | string.cpp:506:17:506:19 | cs1 | | +| string.cpp:505:14:505:19 | call to source | string.cpp:507:17:507:19 | cs2 | | +| string.cpp:506:17:506:19 | cs1 | string.cpp:506:17:506:20 | call to basic_string | TAINT | +| string.cpp:506:17:506:20 | call to basic_string | string.cpp:508:17:508:18 | s1 | | +| string.cpp:506:17:506:20 | call to basic_string | string.cpp:508:29:508:30 | s1 | | +| string.cpp:506:17:506:20 | call to basic_string | string.cpp:511:7:511:8 | s1 | | +| string.cpp:507:17:507:19 | cs2 | string.cpp:507:17:507:20 | call to basic_string | TAINT | +| string.cpp:507:17:507:20 | call to basic_string | string.cpp:509:17:509:18 | s2 | | +| string.cpp:507:17:507:20 | call to basic_string | string.cpp:509:29:509:30 | s2 | | +| string.cpp:507:17:507:20 | call to basic_string | string.cpp:512:7:512:8 | s2 | | +| string.cpp:508:17:508:18 | ref arg s1 | string.cpp:508:29:508:30 | s1 | | +| string.cpp:508:17:508:18 | ref arg s1 | string.cpp:511:7:511:8 | s1 | | +| string.cpp:508:17:508:18 | s1 | string.cpp:508:20:508:24 | call to begin | TAINT | +| string.cpp:508:17:508:37 | call to basic_string | string.cpp:513:7:513:8 | s3 | | | string.cpp:508:20:508:24 | call to begin | string.cpp:508:17:508:37 | call to basic_string | TAINT | -| string.cpp:508:29:508:30 | ref arg s2 | string.cpp:511:7:511:8 | s2 | | -| string.cpp:508:29:508:30 | s2 | string.cpp:508:32:508:34 | call to end | TAINT | +| string.cpp:508:29:508:30 | ref arg s1 | string.cpp:511:7:511:8 | s1 | | +| string.cpp:508:29:508:30 | s1 | string.cpp:508:32:508:34 | call to end | TAINT | | string.cpp:508:32:508:34 | call to end | string.cpp:508:17:508:37 | call to basic_string | TAINT | -| string.cpp:517:16:517:19 | aa | string.cpp:517:16:517:20 | call to basic_string | TAINT | -| string.cpp:517:16:517:20 | call to basic_string | string.cpp:519:7:519:7 | a | | -| string.cpp:517:16:517:20 | call to basic_string | string.cpp:520:7:520:7 | a | | -| string.cpp:517:16:517:20 | call to basic_string | string.cpp:521:2:521:2 | a | | -| string.cpp:517:16:517:20 | call to basic_string | string.cpp:522:7:522:7 | a | | -| string.cpp:517:16:517:20 | call to basic_string | string.cpp:523:7:523:7 | a | | -| string.cpp:519:7:519:7 | a | string.cpp:519:9:519:13 | call to front | TAINT | -| string.cpp:519:7:519:7 | ref arg a | string.cpp:520:7:520:7 | a | | -| string.cpp:519:7:519:7 | ref arg a | string.cpp:521:2:521:2 | a | | -| string.cpp:519:7:519:7 | ref arg a | string.cpp:522:7:522:7 | a | | -| string.cpp:519:7:519:7 | ref arg a | string.cpp:523:7:523:7 | a | | -| string.cpp:520:7:520:7 | a | string.cpp:520:9:520:12 | call to back | TAINT | -| string.cpp:520:7:520:7 | ref arg a | string.cpp:521:2:521:2 | a | | -| string.cpp:520:7:520:7 | ref arg a | string.cpp:522:7:522:7 | a | | +| string.cpp:509:17:509:18 | ref arg s2 | string.cpp:509:29:509:30 | s2 | | +| string.cpp:509:17:509:18 | ref arg s2 | string.cpp:512:7:512:8 | s2 | | +| string.cpp:509:17:509:18 | s2 | string.cpp:509:20:509:24 | call to begin | TAINT | +| string.cpp:509:17:509:37 | call to basic_string | string.cpp:514:7:514:8 | s4 | | +| string.cpp:509:20:509:24 | call to begin | string.cpp:509:17:509:37 | call to basic_string | TAINT | +| string.cpp:509:29:509:30 | ref arg s2 | string.cpp:512:7:512:8 | s2 | | +| string.cpp:509:29:509:30 | s2 | string.cpp:509:32:509:34 | call to end | TAINT | +| string.cpp:509:32:509:34 | call to end | string.cpp:509:17:509:37 | call to basic_string | TAINT | +| string.cpp:518:16:518:19 | aa | string.cpp:518:16:518:20 | call to basic_string | TAINT | +| string.cpp:518:16:518:20 | call to basic_string | string.cpp:520:7:520:7 | a | | +| string.cpp:518:16:518:20 | call to basic_string | string.cpp:521:7:521:7 | a | | +| string.cpp:518:16:518:20 | call to basic_string | string.cpp:522:2:522:2 | a | | +| string.cpp:518:16:518:20 | call to basic_string | string.cpp:523:7:523:7 | a | | +| string.cpp:518:16:518:20 | call to basic_string | string.cpp:524:7:524:7 | a | | +| string.cpp:520:7:520:7 | a | string.cpp:520:9:520:13 | call to front | TAINT | +| string.cpp:520:7:520:7 | ref arg a | string.cpp:521:7:521:7 | a | | +| string.cpp:520:7:520:7 | ref arg a | string.cpp:522:2:522:2 | a | | | string.cpp:520:7:520:7 | ref arg a | string.cpp:523:7:523:7 | a | | -| string.cpp:521:2:521:2 | ref arg a | string.cpp:522:7:522:7 | a | | -| string.cpp:521:2:521:2 | ref arg a | string.cpp:523:7:523:7 | a | | -| string.cpp:521:14:521:28 | call to source | string.cpp:521:2:521:2 | ref arg a | TAINT | -| string.cpp:522:7:522:7 | a | string.cpp:522:9:522:13 | call to front | TAINT | -| string.cpp:522:7:522:7 | ref arg a | string.cpp:523:7:523:7 | a | | -| string.cpp:523:7:523:7 | a | string.cpp:523:9:523:12 | call to back | TAINT | -| string.cpp:528:17:528:20 | aa | string.cpp:528:17:528:21 | call to basic_string | TAINT | -| string.cpp:528:17:528:21 | call to basic_string | string.cpp:535:9:535:9 | a | | -| string.cpp:528:17:528:21 | call to basic_string | string.cpp:539:8:539:8 | a | | -| string.cpp:529:17:529:20 | bb | string.cpp:529:17:529:21 | call to basic_string | TAINT | -| string.cpp:529:17:529:21 | call to basic_string | string.cpp:535:15:535:15 | b | | -| string.cpp:529:17:529:21 | call to basic_string | string.cpp:540:8:540:8 | b | | -| string.cpp:530:17:530:20 | cc | string.cpp:530:17:530:21 | call to basic_string | TAINT | -| string.cpp:530:17:530:21 | call to basic_string | string.cpp:536:9:536:9 | c | | -| string.cpp:530:17:530:21 | call to basic_string | string.cpp:541:8:541:8 | c | | -| string.cpp:531:17:531:20 | dd | string.cpp:531:17:531:21 | call to basic_string | TAINT | -| string.cpp:531:17:531:21 | call to basic_string | string.cpp:536:15:536:15 | d | | -| string.cpp:531:17:531:21 | call to basic_string | string.cpp:542:8:542:8 | d | | -| string.cpp:532:17:532:20 | ee | string.cpp:532:17:532:21 | call to basic_string | TAINT | -| string.cpp:532:17:532:21 | call to basic_string | string.cpp:537:10:537:10 | e | | -| string.cpp:532:17:532:21 | call to basic_string | string.cpp:543:8:543:8 | e | | -| string.cpp:533:17:533:20 | ff | string.cpp:533:17:533:21 | call to basic_string | TAINT | -| string.cpp:533:17:533:21 | call to basic_string | string.cpp:538:10:538:10 | f | | -| string.cpp:533:17:533:21 | call to basic_string | string.cpp:544:8:544:8 | f | | -| string.cpp:535:9:535:9 | a | string.cpp:535:11:535:11 | call to operator+= | TAINT | -| string.cpp:535:9:535:9 | ref arg a | string.cpp:539:8:539:8 | a | | -| string.cpp:535:15:535:15 | b | string.cpp:535:17:535:17 | call to operator+= | TAINT | -| string.cpp:535:15:535:15 | ref arg b | string.cpp:540:8:540:8 | b | | -| string.cpp:535:17:535:17 | call to operator+= | string.cpp:535:9:535:9 | ref arg a | TAINT | -| string.cpp:535:17:535:17 | call to operator+= | string.cpp:535:11:535:11 | call to operator+= | TAINT | -| string.cpp:535:20:535:23 | bb | string.cpp:535:15:535:15 | ref arg b | TAINT | -| string.cpp:535:20:535:23 | bb | string.cpp:535:17:535:17 | call to operator+= | TAINT | -| string.cpp:536:9:536:9 | c | string.cpp:536:11:536:11 | call to operator+= | TAINT | -| string.cpp:536:9:536:9 | ref arg c | string.cpp:541:8:541:8 | c | | -| string.cpp:536:15:536:15 | d | string.cpp:536:17:536:17 | call to operator+= | TAINT | -| string.cpp:536:15:536:15 | ref arg d | string.cpp:542:8:542:8 | d | | -| string.cpp:536:17:536:17 | call to operator+= | string.cpp:536:9:536:9 | ref arg c | TAINT | +| string.cpp:520:7:520:7 | ref arg a | string.cpp:524:7:524:7 | a | | +| string.cpp:521:7:521:7 | a | string.cpp:521:9:521:12 | call to back | TAINT | +| string.cpp:521:7:521:7 | ref arg a | string.cpp:522:2:522:2 | a | | +| string.cpp:521:7:521:7 | ref arg a | string.cpp:523:7:523:7 | a | | +| string.cpp:521:7:521:7 | ref arg a | string.cpp:524:7:524:7 | a | | +| string.cpp:522:2:522:2 | ref arg a | string.cpp:523:7:523:7 | a | | +| string.cpp:522:2:522:2 | ref arg a | string.cpp:524:7:524:7 | a | | +| string.cpp:522:14:522:28 | call to source | string.cpp:522:2:522:2 | ref arg a | TAINT | +| string.cpp:523:7:523:7 | a | string.cpp:523:9:523:13 | call to front | TAINT | +| string.cpp:523:7:523:7 | ref arg a | string.cpp:524:7:524:7 | a | | +| string.cpp:524:7:524:7 | a | string.cpp:524:9:524:12 | call to back | TAINT | +| string.cpp:529:17:529:20 | aa | string.cpp:529:17:529:21 | call to basic_string | TAINT | +| string.cpp:529:17:529:21 | call to basic_string | string.cpp:536:9:536:9 | a | | +| string.cpp:529:17:529:21 | call to basic_string | string.cpp:540:8:540:8 | a | | +| string.cpp:530:17:530:20 | bb | string.cpp:530:17:530:21 | call to basic_string | TAINT | +| string.cpp:530:17:530:21 | call to basic_string | string.cpp:536:15:536:15 | b | | +| string.cpp:530:17:530:21 | call to basic_string | string.cpp:541:8:541:8 | b | | +| string.cpp:531:17:531:20 | cc | string.cpp:531:17:531:21 | call to basic_string | TAINT | +| string.cpp:531:17:531:21 | call to basic_string | string.cpp:537:9:537:9 | c | | +| string.cpp:531:17:531:21 | call to basic_string | string.cpp:542:8:542:8 | c | | +| string.cpp:532:17:532:20 | dd | string.cpp:532:17:532:21 | call to basic_string | TAINT | +| string.cpp:532:17:532:21 | call to basic_string | string.cpp:537:15:537:15 | d | | +| string.cpp:532:17:532:21 | call to basic_string | string.cpp:543:8:543:8 | d | | +| string.cpp:533:17:533:20 | ee | string.cpp:533:17:533:21 | call to basic_string | TAINT | +| string.cpp:533:17:533:21 | call to basic_string | string.cpp:538:10:538:10 | e | | +| string.cpp:533:17:533:21 | call to basic_string | string.cpp:544:8:544:8 | e | | +| string.cpp:534:17:534:20 | ff | string.cpp:534:17:534:21 | call to basic_string | TAINT | +| string.cpp:534:17:534:21 | call to basic_string | string.cpp:539:10:539:10 | f | | +| string.cpp:534:17:534:21 | call to basic_string | string.cpp:545:8:545:8 | f | | +| string.cpp:536:9:536:9 | a | string.cpp:536:11:536:11 | call to operator+= | TAINT | +| string.cpp:536:9:536:9 | ref arg a | string.cpp:540:8:540:8 | a | | +| string.cpp:536:15:536:15 | b | string.cpp:536:17:536:17 | call to operator+= | TAINT | +| string.cpp:536:15:536:15 | ref arg b | string.cpp:541:8:541:8 | b | | +| string.cpp:536:17:536:17 | call to operator+= | string.cpp:536:9:536:9 | ref arg a | TAINT | | string.cpp:536:17:536:17 | call to operator+= | string.cpp:536:11:536:11 | call to operator+= | TAINT | -| string.cpp:536:20:536:25 | call to source | string.cpp:536:15:536:15 | ref arg d | TAINT | -| string.cpp:536:20:536:25 | call to source | string.cpp:536:17:536:17 | call to operator+= | TAINT | -| string.cpp:537:10:537:10 | e | string.cpp:537:12:537:12 | call to operator+= | TAINT | -| string.cpp:537:10:537:10 | ref arg e | string.cpp:543:8:543:8 | e | | -| string.cpp:537:12:537:12 | call to operator+= | string.cpp:537:21:537:21 | call to operator+= | TAINT | -| string.cpp:537:12:537:12 | ref arg call to operator+= | string.cpp:537:10:537:10 | ref arg e | TAINT | -| string.cpp:537:15:537:18 | ee | string.cpp:537:10:537:10 | ref arg e | TAINT | -| string.cpp:537:15:537:18 | ee | string.cpp:537:12:537:12 | call to operator+= | TAINT | -| string.cpp:537:24:537:29 | call to source | string.cpp:537:12:537:12 | ref arg call to operator+= | TAINT | -| string.cpp:537:24:537:29 | call to source | string.cpp:537:21:537:21 | call to operator+= | TAINT | -| string.cpp:538:10:538:10 | f | string.cpp:538:12:538:12 | call to operator+= | TAINT | -| string.cpp:538:10:538:10 | ref arg f | string.cpp:544:8:544:8 | f | | -| string.cpp:538:12:538:12 | call to operator+= | string.cpp:538:25:538:25 | call to operator+= | TAINT | -| string.cpp:538:12:538:12 | ref arg call to operator+= | string.cpp:538:10:538:10 | ref arg f | TAINT | -| string.cpp:538:15:538:20 | call to source | string.cpp:538:10:538:10 | ref arg f | TAINT | -| string.cpp:538:15:538:20 | call to source | string.cpp:538:12:538:12 | call to operator+= | TAINT | -| string.cpp:538:28:538:31 | ff | string.cpp:538:12:538:12 | ref arg call to operator+= | TAINT | -| string.cpp:538:28:538:31 | ff | string.cpp:538:25:538:25 | call to operator+= | TAINT | -| string.cpp:548:17:548:20 | aa | string.cpp:548:17:548:21 | call to basic_string | TAINT | -| string.cpp:548:17:548:21 | call to basic_string | string.cpp:555:9:555:9 | a | | -| string.cpp:548:17:548:21 | call to basic_string | string.cpp:559:8:559:8 | a | | -| string.cpp:549:17:549:20 | bb | string.cpp:549:17:549:21 | call to basic_string | TAINT | -| string.cpp:549:17:549:21 | call to basic_string | string.cpp:555:18:555:18 | b | | -| string.cpp:549:17:549:21 | call to basic_string | string.cpp:560:8:560:8 | b | | -| string.cpp:550:17:550:20 | cc | string.cpp:550:17:550:21 | call to basic_string | TAINT | -| string.cpp:550:17:550:21 | call to basic_string | string.cpp:556:9:556:9 | c | | -| string.cpp:550:17:550:21 | call to basic_string | string.cpp:561:8:561:8 | c | | -| string.cpp:551:17:551:20 | dd | string.cpp:551:17:551:21 | call to basic_string | TAINT | -| string.cpp:551:17:551:21 | call to basic_string | string.cpp:556:18:556:18 | d | | -| string.cpp:551:17:551:21 | call to basic_string | string.cpp:562:8:562:8 | d | | -| string.cpp:552:17:552:20 | ee | string.cpp:552:17:552:21 | call to basic_string | TAINT | -| string.cpp:552:17:552:21 | call to basic_string | string.cpp:557:9:557:9 | e | | -| string.cpp:552:17:552:21 | call to basic_string | string.cpp:563:8:563:8 | e | | -| string.cpp:553:17:553:20 | ff | string.cpp:553:17:553:21 | call to basic_string | TAINT | -| string.cpp:553:17:553:21 | call to basic_string | string.cpp:558:9:558:9 | f | | -| string.cpp:553:17:553:21 | call to basic_string | string.cpp:564:8:564:8 | f | | -| string.cpp:555:9:555:9 | ref arg a | string.cpp:559:8:559:8 | a | | -| string.cpp:555:18:555:18 | ref arg b | string.cpp:560:8:560:8 | b | | -| string.cpp:555:20:555:25 | call to assign | string.cpp:555:9:555:9 | ref arg a | TAINT | -| string.cpp:555:20:555:25 | call to assign | string.cpp:555:11:555:16 | call to assign | TAINT | -| string.cpp:555:27:555:30 | bb | string.cpp:555:27:555:30 | call to basic_string | TAINT | -| string.cpp:555:27:555:30 | call to basic_string | string.cpp:555:18:555:18 | ref arg b | TAINT | -| string.cpp:555:27:555:30 | call to basic_string | string.cpp:555:20:555:25 | call to assign | TAINT | -| string.cpp:556:9:556:9 | ref arg c | string.cpp:561:8:561:8 | c | | -| string.cpp:556:18:556:18 | ref arg d | string.cpp:562:8:562:8 | d | | -| string.cpp:556:20:556:25 | call to assign | string.cpp:556:9:556:9 | ref arg c | TAINT | +| string.cpp:536:20:536:23 | bb | string.cpp:536:15:536:15 | ref arg b | TAINT | +| string.cpp:536:20:536:23 | bb | string.cpp:536:17:536:17 | call to operator+= | TAINT | +| string.cpp:537:9:537:9 | c | string.cpp:537:11:537:11 | call to operator+= | TAINT | +| string.cpp:537:9:537:9 | ref arg c | string.cpp:542:8:542:8 | c | | +| string.cpp:537:15:537:15 | d | string.cpp:537:17:537:17 | call to operator+= | TAINT | +| string.cpp:537:15:537:15 | ref arg d | string.cpp:543:8:543:8 | d | | +| string.cpp:537:17:537:17 | call to operator+= | string.cpp:537:9:537:9 | ref arg c | TAINT | +| string.cpp:537:17:537:17 | call to operator+= | string.cpp:537:11:537:11 | call to operator+= | TAINT | +| string.cpp:537:20:537:25 | call to source | string.cpp:537:15:537:15 | ref arg d | TAINT | +| string.cpp:537:20:537:25 | call to source | string.cpp:537:17:537:17 | call to operator+= | TAINT | +| string.cpp:538:10:538:10 | e | string.cpp:538:12:538:12 | call to operator+= | TAINT | +| string.cpp:538:10:538:10 | ref arg e | string.cpp:544:8:544:8 | e | | +| string.cpp:538:12:538:12 | call to operator+= | string.cpp:538:21:538:21 | call to operator+= | TAINT | +| string.cpp:538:12:538:12 | ref arg call to operator+= | string.cpp:538:10:538:10 | ref arg e | TAINT | +| string.cpp:538:15:538:18 | ee | string.cpp:538:10:538:10 | ref arg e | TAINT | +| string.cpp:538:15:538:18 | ee | string.cpp:538:12:538:12 | call to operator+= | TAINT | +| string.cpp:538:24:538:29 | call to source | string.cpp:538:12:538:12 | ref arg call to operator+= | TAINT | +| string.cpp:538:24:538:29 | call to source | string.cpp:538:21:538:21 | call to operator+= | TAINT | +| string.cpp:539:10:539:10 | f | string.cpp:539:12:539:12 | call to operator+= | TAINT | +| string.cpp:539:10:539:10 | ref arg f | string.cpp:545:8:545:8 | f | | +| string.cpp:539:12:539:12 | call to operator+= | string.cpp:539:25:539:25 | call to operator+= | TAINT | +| string.cpp:539:12:539:12 | ref arg call to operator+= | string.cpp:539:10:539:10 | ref arg f | TAINT | +| string.cpp:539:15:539:20 | call to source | string.cpp:539:10:539:10 | ref arg f | TAINT | +| string.cpp:539:15:539:20 | call to source | string.cpp:539:12:539:12 | call to operator+= | TAINT | +| string.cpp:539:28:539:31 | ff | string.cpp:539:12:539:12 | ref arg call to operator+= | TAINT | +| string.cpp:539:28:539:31 | ff | string.cpp:539:25:539:25 | call to operator+= | TAINT | +| string.cpp:549:17:549:20 | aa | string.cpp:549:17:549:21 | call to basic_string | TAINT | +| string.cpp:549:17:549:21 | call to basic_string | string.cpp:556:9:556:9 | a | | +| string.cpp:549:17:549:21 | call to basic_string | string.cpp:560:8:560:8 | a | | +| string.cpp:550:17:550:20 | bb | string.cpp:550:17:550:21 | call to basic_string | TAINT | +| string.cpp:550:17:550:21 | call to basic_string | string.cpp:556:18:556:18 | b | | +| string.cpp:550:17:550:21 | call to basic_string | string.cpp:561:8:561:8 | b | | +| string.cpp:551:17:551:20 | cc | string.cpp:551:17:551:21 | call to basic_string | TAINT | +| string.cpp:551:17:551:21 | call to basic_string | string.cpp:557:9:557:9 | c | | +| string.cpp:551:17:551:21 | call to basic_string | string.cpp:562:8:562:8 | c | | +| string.cpp:552:17:552:20 | dd | string.cpp:552:17:552:21 | call to basic_string | TAINT | +| string.cpp:552:17:552:21 | call to basic_string | string.cpp:557:18:557:18 | d | | +| string.cpp:552:17:552:21 | call to basic_string | string.cpp:563:8:563:8 | d | | +| string.cpp:553:17:553:20 | ee | string.cpp:553:17:553:21 | call to basic_string | TAINT | +| string.cpp:553:17:553:21 | call to basic_string | string.cpp:558:9:558:9 | e | | +| string.cpp:553:17:553:21 | call to basic_string | string.cpp:564:8:564:8 | e | | +| string.cpp:554:17:554:20 | ff | string.cpp:554:17:554:21 | call to basic_string | TAINT | +| string.cpp:554:17:554:21 | call to basic_string | string.cpp:559:9:559:9 | f | | +| string.cpp:554:17:554:21 | call to basic_string | string.cpp:565:8:565:8 | f | | +| string.cpp:556:9:556:9 | ref arg a | string.cpp:560:8:560:8 | a | | +| string.cpp:556:18:556:18 | ref arg b | string.cpp:561:8:561:8 | b | | +| string.cpp:556:20:556:25 | call to assign | string.cpp:556:9:556:9 | ref arg a | TAINT | | string.cpp:556:20:556:25 | call to assign | string.cpp:556:11:556:16 | call to assign | TAINT | -| string.cpp:556:27:556:32 | call to source | string.cpp:556:27:556:34 | call to basic_string | TAINT | -| string.cpp:556:27:556:34 | call to basic_string | string.cpp:556:18:556:18 | ref arg d | TAINT | -| string.cpp:556:27:556:34 | call to basic_string | string.cpp:556:20:556:25 | call to assign | TAINT | -| string.cpp:557:9:557:9 | ref arg e | string.cpp:563:8:563:8 | e | | -| string.cpp:557:11:557:16 | ref arg call to assign | string.cpp:557:9:557:9 | ref arg e | TAINT | -| string.cpp:557:18:557:21 | call to basic_string | string.cpp:557:9:557:9 | ref arg e | TAINT | -| string.cpp:557:18:557:21 | call to basic_string | string.cpp:557:11:557:16 | call to assign | TAINT | -| string.cpp:557:18:557:21 | ee | string.cpp:557:18:557:21 | call to basic_string | TAINT | -| string.cpp:557:31:557:36 | call to source | string.cpp:557:31:557:38 | call to basic_string | TAINT | -| string.cpp:557:31:557:38 | call to basic_string | string.cpp:557:11:557:16 | ref arg call to assign | TAINT | -| string.cpp:557:31:557:38 | call to basic_string | string.cpp:557:24:557:29 | call to assign | TAINT | -| string.cpp:558:9:558:9 | ref arg f | string.cpp:564:8:564:8 | f | | -| string.cpp:558:11:558:16 | ref arg call to assign | string.cpp:558:9:558:9 | ref arg f | TAINT | -| string.cpp:558:18:558:23 | call to source | string.cpp:558:18:558:25 | call to basic_string | TAINT | -| string.cpp:558:18:558:25 | call to basic_string | string.cpp:558:9:558:9 | ref arg f | TAINT | -| string.cpp:558:18:558:25 | call to basic_string | string.cpp:558:11:558:16 | call to assign | TAINT | -| string.cpp:558:35:558:38 | call to basic_string | string.cpp:558:11:558:16 | ref arg call to assign | TAINT | -| string.cpp:558:35:558:38 | call to basic_string | string.cpp:558:28:558:33 | call to assign | TAINT | -| string.cpp:558:35:558:38 | ff | string.cpp:558:35:558:38 | call to basic_string | TAINT | +| string.cpp:556:27:556:30 | bb | string.cpp:556:27:556:30 | call to basic_string | TAINT | +| string.cpp:556:27:556:30 | call to basic_string | string.cpp:556:18:556:18 | ref arg b | TAINT | +| string.cpp:556:27:556:30 | call to basic_string | string.cpp:556:20:556:25 | call to assign | TAINT | +| string.cpp:557:9:557:9 | ref arg c | string.cpp:562:8:562:8 | c | | +| string.cpp:557:18:557:18 | ref arg d | string.cpp:563:8:563:8 | d | | +| string.cpp:557:20:557:25 | call to assign | string.cpp:557:9:557:9 | ref arg c | TAINT | +| string.cpp:557:20:557:25 | call to assign | string.cpp:557:11:557:16 | call to assign | TAINT | +| string.cpp:557:27:557:32 | call to source | string.cpp:557:27:557:34 | call to basic_string | TAINT | +| string.cpp:557:27:557:34 | call to basic_string | string.cpp:557:18:557:18 | ref arg d | TAINT | +| string.cpp:557:27:557:34 | call to basic_string | string.cpp:557:20:557:25 | call to assign | TAINT | +| string.cpp:558:9:558:9 | ref arg e | string.cpp:564:8:564:8 | e | | +| string.cpp:558:11:558:16 | ref arg call to assign | string.cpp:558:9:558:9 | ref arg e | TAINT | +| string.cpp:558:18:558:21 | call to basic_string | string.cpp:558:9:558:9 | ref arg e | TAINT | +| string.cpp:558:18:558:21 | call to basic_string | string.cpp:558:11:558:16 | call to assign | TAINT | +| string.cpp:558:18:558:21 | ee | string.cpp:558:18:558:21 | call to basic_string | TAINT | +| string.cpp:558:31:558:36 | call to source | string.cpp:558:31:558:38 | call to basic_string | TAINT | +| string.cpp:558:31:558:38 | call to basic_string | string.cpp:558:11:558:16 | ref arg call to assign | TAINT | +| string.cpp:558:31:558:38 | call to basic_string | string.cpp:558:24:558:29 | call to assign | TAINT | +| string.cpp:559:9:559:9 | ref arg f | string.cpp:565:8:565:8 | f | | +| string.cpp:559:11:559:16 | ref arg call to assign | string.cpp:559:9:559:9 | ref arg f | TAINT | +| string.cpp:559:18:559:23 | call to source | string.cpp:559:18:559:25 | call to basic_string | TAINT | +| string.cpp:559:18:559:25 | call to basic_string | string.cpp:559:9:559:9 | ref arg f | TAINT | +| string.cpp:559:18:559:25 | call to basic_string | string.cpp:559:11:559:16 | call to assign | TAINT | +| string.cpp:559:35:559:38 | call to basic_string | string.cpp:559:11:559:16 | ref arg call to assign | TAINT | +| string.cpp:559:35:559:38 | call to basic_string | string.cpp:559:28:559:33 | call to assign | TAINT | +| string.cpp:559:35:559:38 | ff | string.cpp:559:35:559:38 | call to basic_string | TAINT | +| string.cpp:574:26:574:47 | call to source | string.cpp:575:26:575:29 | view | | +| string.cpp:574:26:574:47 | call to source | string.cpp:575:40:575:43 | view | | +| string.cpp:574:26:574:47 | call to source | string.cpp:580:23:580:26 | view | | +| string.cpp:574:26:574:47 | call to source | string.cpp:581:23:581:26 | view | | +| string.cpp:574:26:574:47 | call to source | string.cpp:582:26:582:29 | view | | +| string.cpp:574:26:574:47 | call to source | string.cpp:583:30:583:33 | view | | +| string.cpp:575:26:575:29 | view | string.cpp:575:26:575:30 | call to basic_string | TAINT | +| string.cpp:575:26:575:30 | call to basic_string | string.cpp:576:7:576:17 | constructed | | +| string.cpp:575:40:575:43 | view | string.cpp:575:40:575:50 | call to basic_string | TAINT | +| string.cpp:575:40:575:50 | call to basic_string | string.cpp:577:7:577:12 | sliced | | +| string.cpp:579:14:579:21 | call to basic_string | string.cpp:580:7:580:14 | assigned | | +| string.cpp:579:24:579:31 | call to basic_string | string.cpp:581:7:581:14 | appended | | +| string.cpp:579:34:579:41 | call to basic_string | string.cpp:582:7:582:14 | inserted | | +| string.cpp:579:44:579:51 | call to basic_string | string.cpp:583:7:583:14 | replaced | | +| string.cpp:580:23:580:26 | view | string.cpp:580:7:580:14 | ref arg assigned | TAINT | +| string.cpp:580:23:580:26 | view | string.cpp:580:16:580:21 | call to assign | TAINT | +| string.cpp:581:7:581:14 | appended | string.cpp:581:16:581:21 | call to append | TAINT | +| string.cpp:581:23:581:26 | view | string.cpp:581:7:581:14 | ref arg appended | TAINT | +| string.cpp:581:23:581:26 | view | string.cpp:581:16:581:21 | call to append | TAINT | +| string.cpp:582:7:582:14 | inserted | string.cpp:582:16:582:21 | call to insert | TAINT | +| string.cpp:582:26:582:29 | view | string.cpp:582:7:582:14 | ref arg inserted | TAINT | +| string.cpp:582:26:582:29 | view | string.cpp:582:16:582:21 | call to insert | TAINT | +| string.cpp:583:7:583:14 | replaced | string.cpp:583:16:583:22 | call to replace | TAINT | +| string.cpp:583:30:583:33 | view | string.cpp:583:7:583:14 | ref arg replaced | TAINT | +| string.cpp:583:30:583:33 | view | string.cpp:583:16:583:22 | call to replace | TAINT | +| string.cpp:585:17:585:31 | call to source | string.cpp:586:7:586:13 | tainted | | +| string.cpp:586:7:586:13 | tainted | string.cpp:586:15:586:15 | call to operator+ | TAINT | +| string.cpp:586:17:586:36 | call to basic_string | string.cpp:586:15:586:15 | call to operator+ | TAINT | +| string.cpp:586:29:586:35 | clean | string.cpp:586:17:586:36 | call to basic_string | TAINT | +| string.cpp:602:21:602:26 | call to source | string.cpp:603:30:603:33 | data | | +| string.cpp:602:21:602:26 | call to source | string.cpp:607:27:607:30 | data | | +| string.cpp:602:21:602:26 | call to source | string.cpp:611:29:611:32 | data | | +| string.cpp:602:21:602:26 | call to source | string.cpp:611:35:611:38 | data | | +| string.cpp:603:30:603:33 | data | string.cpp:603:30:603:34 | call to basic_string_view | TAINT | +| string.cpp:603:30:603:34 | call to basic_string_view | string.cpp:604:7:604:16 | terminated | | +| string.cpp:603:30:603:34 | call to basic_string_view | string.cpp:605:7:605:16 | terminated | | +| string.cpp:604:7:604:16 | terminated | string.cpp:604:7:604:16 | call to basic_string_view | | +| string.cpp:607:27:607:34 | call to basic_string_view | string.cpp:608:7:608:13 | counted | | +| string.cpp:607:27:607:34 | call to basic_string_view | string.cpp:609:7:609:13 | counted | | +| string.cpp:608:7:608:13 | counted | string.cpp:608:7:608:13 | call to basic_string_view | | +| string.cpp:611:29:611:43 | call to basic_string_view | string.cpp:612:7:612:15 | iterators | | +| string.cpp:611:35:611:38 | data | string.cpp:611:35:611:42 | ... + ... | TAINT | +| string.cpp:611:42:611:42 | 5 | string.cpp:611:35:611:42 | ... + ... | TAINT | +| string.cpp:612:7:612:15 | iterators | string.cpp:612:7:612:15 | call to basic_string_view | | +| string.cpp:616:24:616:45 | call to source | string.cpp:617:26:617:33 | original | | +| string.cpp:616:24:616:45 | call to source | string.cpp:620:63:620:70 | original | | +| string.cpp:616:24:616:45 | call to source | string.cpp:624:18:624:25 | original | | +| string.cpp:616:24:616:45 | call to source | string.cpp:629:22:629:29 | original | | +| string.cpp:617:26:617:33 | original | string.cpp:617:26:617:34 | call to basic_string_view | | +| string.cpp:617:26:617:34 | call to basic_string_view | string.cpp:618:7:618:12 | copied | | +| string.cpp:617:26:617:34 | call to basic_string_view | string.cpp:619:7:619:12 | copied | | +| string.cpp:617:26:617:34 | call to basic_string_view | string.cpp:632:2:632:7 | copied | | +| string.cpp:617:26:617:34 | call to basic_string_view | string.cpp:633:7:633:12 | copied | | +| string.cpp:618:7:618:12 | copied | string.cpp:618:7:618:12 | call to basic_string_view | | +| string.cpp:620:25:620:72 | call to basic_string_view | string.cpp:621:7:621:11 | moved | | +| string.cpp:620:63:620:70 | original | string.cpp:620:25:620:72 | call to basic_string_view | TAINT | +| string.cpp:621:7:621:11 | moved | string.cpp:621:7:621:11 | call to basic_string_view | | +| string.cpp:623:19:623:26 | call to basic_string_view | string.cpp:624:7:624:14 | assigned | | +| string.cpp:623:19:623:26 | call to basic_string_view | string.cpp:625:7:625:14 | assigned | | +| string.cpp:624:7:624:14 | ref arg assigned | string.cpp:625:7:625:14 | assigned | | +| string.cpp:624:16:624:16 | call to operator= | string.cpp:624:7:624:25 | call to basic_string_view | TAINT | +| string.cpp:624:18:624:25 | original | string.cpp:624:7:624:14 | ref arg assigned | TAINT | +| string.cpp:624:18:624:25 | original | string.cpp:624:16:624:16 | call to operator= | TAINT | +| string.cpp:625:7:625:14 | assigned | string.cpp:625:7:625:14 | call to basic_string_view | | +| string.cpp:627:25:627:29 | call to basic_string_view | string.cpp:629:13:629:17 | clean | | +| string.cpp:627:25:627:29 | call to basic_string_view | string.cpp:632:11:632:15 | clean | | +| string.cpp:628:19:628:25 | call to basic_string_view | string.cpp:629:3:629:9 | chained | | +| string.cpp:628:19:628:25 | call to basic_string_view | string.cpp:630:7:630:13 | chained | | +| string.cpp:629:3:629:9 | ref arg chained | string.cpp:630:7:630:13 | chained | | +| string.cpp:629:13:629:17 | clean | string.cpp:629:3:629:9 | ref arg chained | TAINT | +| string.cpp:629:13:629:17 | clean | string.cpp:629:11:629:11 | call to operator= | TAINT | +| string.cpp:629:22:629:29 | original | string.cpp:629:11:629:11 | ref arg call to operator= | TAINT | +| string.cpp:629:22:629:29 | original | string.cpp:629:20:629:20 | call to operator= | TAINT | +| string.cpp:630:7:630:13 | chained | string.cpp:630:7:630:13 | call to basic_string_view | | +| string.cpp:632:2:632:7 | ref arg copied | string.cpp:633:7:633:12 | copied | | +| string.cpp:632:11:632:15 | clean | string.cpp:632:2:632:7 | ref arg copied | TAINT | +| string.cpp:632:11:632:15 | clean | string.cpp:632:9:632:9 | call to operator= | TAINT | +| string.cpp:633:7:633:12 | copied | string.cpp:633:7:633:12 | call to basic_string_view | | +| string.cpp:637:27:637:43 | call to source | string.cpp:638:29:638:30 | it | | +| string.cpp:637:27:637:43 | call to source | string.cpp:638:33:638:34 | it | | +| string.cpp:638:29:638:35 | call to basic_string_view | string.cpp:639:7:639:15 | iterators | | +| string.cpp:639:7:639:15 | iterators | string.cpp:639:7:639:15 | call to basic_string_view | | +| string.cpp:641:24:641:37 | call to source | string.cpp:642:30:642:34 | range | | +| string.cpp:642:30:642:35 | call to basic_string_view | string.cpp:643:7:643:16 | from_range | | +| string.cpp:643:7:643:16 | from_range | string.cpp:643:7:643:16 | call to basic_string_view | | +| string.cpp:645:20:645:28 | call to vector | string.cpp:646:2:646:10 | container | | +| string.cpp:645:20:645:28 | call to vector | string.cpp:647:34:647:42 | container | | +| string.cpp:645:20:645:28 | call to vector | string.cpp:649:44:649:52 | container | | +| string.cpp:645:20:645:28 | call to vector | string.cpp:649:63:649:71 | container | | +| string.cpp:645:20:645:28 | call to vector | string.cpp:651:1:651:1 | container | | +| string.cpp:646:2:646:10 | ref arg container | string.cpp:647:34:647:42 | container | | +| string.cpp:646:2:646:10 | ref arg container | string.cpp:649:44:649:52 | container | | +| string.cpp:646:2:646:10 | ref arg container | string.cpp:649:63:649:71 | container | | +| string.cpp:646:2:646:10 | ref arg container | string.cpp:651:1:651:1 | container | | +| string.cpp:647:34:647:42 | ref arg container | string.cpp:649:44:649:52 | container | | +| string.cpp:647:34:647:42 | ref arg container | string.cpp:649:63:649:71 | container | | +| string.cpp:647:34:647:42 | ref arg container | string.cpp:651:1:651:1 | container | | +| string.cpp:647:34:647:43 | call to basic_string_view | string.cpp:648:7:648:20 | from_container | | +| string.cpp:648:7:648:20 | from_container | string.cpp:648:7:648:20 | call to basic_string_view | | +| string.cpp:649:44:649:52 | container | string.cpp:649:54:649:58 | call to begin | TAINT | +| string.cpp:649:44:649:52 | ref arg container | string.cpp:649:63:649:71 | container | | +| string.cpp:649:44:649:52 | ref arg container | string.cpp:651:1:651:1 | container | | +| string.cpp:649:44:649:78 | call to basic_string_view | string.cpp:650:7:650:30 | from_container_iterators | | +| string.cpp:649:63:649:71 | container | string.cpp:649:73:649:75 | call to end | TAINT | +| string.cpp:649:63:649:71 | ref arg container | string.cpp:651:1:651:1 | container | | +| string.cpp:650:7:650:30 | from_container_iterators | string.cpp:650:7:650:30 | call to basic_string_view | | +| string.cpp:654:14:654:35 | call to source | string.cpp:655:7:655:10 | view | | +| string.cpp:654:14:654:35 | call to source | string.cpp:656:7:656:10 | view | | +| string.cpp:654:14:654:35 | call to source | string.cpp:657:7:657:10 | view | | +| string.cpp:654:14:654:35 | call to source | string.cpp:658:7:658:10 | view | | +| string.cpp:654:14:654:35 | call to source | string.cpp:659:7:659:10 | view | | +| string.cpp:654:14:654:35 | call to source | string.cpp:660:8:660:11 | view | | +| string.cpp:654:14:654:35 | call to source | string.cpp:661:8:661:11 | view | | +| string.cpp:660:8:660:11 | view | string.cpp:660:13:660:17 | call to begin | TAINT | +| string.cpp:660:13:660:17 | call to begin | string.cpp:660:7:660:19 | * ... | TAINT | +| string.cpp:661:8:661:11 | view | string.cpp:661:13:661:18 | call to cbegin | TAINT | +| string.cpp:661:13:661:18 | call to cbegin | string.cpp:661:7:661:20 | * ... | TAINT | +| string.cpp:665:16:665:37 | call to source | string.cpp:666:2:666:7 | prefix | | +| string.cpp:665:16:665:37 | call to source | string.cpp:667:7:667:12 | prefix | | +| string.cpp:665:16:665:37 | call to source | string.cpp:668:7:668:12 | prefix | | +| string.cpp:666:2:666:7 | ref arg prefix | string.cpp:667:7:667:12 | prefix | | +| string.cpp:666:2:666:7 | ref arg prefix | string.cpp:668:7:668:12 | prefix | | +| string.cpp:667:7:667:12 | prefix | string.cpp:667:7:667:12 | call to basic_string_view | | +| string.cpp:670:16:670:37 | call to source | string.cpp:671:2:671:7 | suffix | | +| string.cpp:670:16:670:37 | call to source | string.cpp:672:7:672:12 | suffix | | +| string.cpp:670:16:670:37 | call to source | string.cpp:673:7:673:12 | suffix | | +| string.cpp:671:2:671:7 | ref arg suffix | string.cpp:672:7:672:12 | suffix | | +| string.cpp:671:2:671:7 | ref arg suffix | string.cpp:673:7:673:12 | suffix | | +| string.cpp:672:7:672:12 | suffix | string.cpp:672:7:672:12 | call to basic_string_view | | +| string.cpp:677:14:677:35 | call to source | string.cpp:678:7:678:10 | view | | +| string.cpp:677:14:677:35 | call to source | string.cpp:679:7:679:10 | view | | +| string.cpp:677:14:677:35 | call to source | string.cpp:682:7:682:10 | view | | +| string.cpp:677:14:677:35 | call to source | string.cpp:686:2:686:5 | view | | +| string.cpp:677:14:677:35 | call to source | string.cpp:687:7:687:10 | view | | +| string.cpp:681:19:681:21 | {...} | string.cpp:682:17:682:22 | buffer | | +| string.cpp:681:19:681:21 | {...} | string.cpp:683:7:683:12 | buffer | | +| string.cpp:682:17:682:22 | ref arg buffer | string.cpp:683:7:683:12 | buffer | | +| string.cpp:685:19:685:23 | call to basic_string_view | string.cpp:686:12:686:16 | clean | | +| string.cpp:685:19:685:23 | call to basic_string_view | string.cpp:688:7:688:11 | clean | | +| string.cpp:686:2:686:5 | ref arg view | string.cpp:687:7:687:10 | view | | +| string.cpp:686:12:686:16 | ref arg clean | string.cpp:688:7:688:11 | clean | | +| string.cpp:687:7:687:10 | view | string.cpp:687:7:687:10 | call to basic_string_view | | +| string.cpp:688:7:688:11 | clean | string.cpp:688:7:688:11 | call to basic_string_view | | +| string.cpp:694:17:694:20 | aa | string.cpp:694:17:694:21 | call to basic_string | TAINT | +| string.cpp:695:4:695:4 | s | string.cpp:695:4:695:11 | ... = ... | | +| string.cpp:695:4:695:11 | ... = ... | string.cpp:695:4:695:4 | s [inner post update] | | +| string.cpp:695:4:695:11 | ... = ... | string.cpp:695:14:695:14 | call to operator+= | TAINT | +| string.cpp:695:4:695:11 | ref arg ... = ... | string.cpp:695:4:695:4 | s [inner post update] | | +| string.cpp:695:4:695:11 | ref arg ... = ... | string.cpp:696:8:696:8 | s | | +| string.cpp:695:8:695:11 | bb | string.cpp:695:8:695:11 | call to basic_string | TAINT | +| string.cpp:695:8:695:11 | call to basic_string | string.cpp:695:4:695:11 | ... = ... | | +| string.cpp:695:8:695:11 | call to basic_string | string.cpp:696:8:696:8 | s | | +| string.cpp:695:17:695:22 | call to source | string.cpp:695:4:695:11 | ref arg ... = ... | TAINT | +| string.cpp:695:17:695:22 | call to source | string.cpp:695:14:695:14 | call to operator+= | TAINT | +| string.cpp:700:17:700:20 | aa | string.cpp:700:17:700:21 | call to basic_string | TAINT | +| string.cpp:700:17:700:21 | call to basic_string | string.cpp:701:3:701:3 | s | | +| string.cpp:700:17:700:21 | call to basic_string | string.cpp:702:8:702:8 | s | | +| string.cpp:701:3:701:3 | ref arg s | string.cpp:702:8:702:8 | s | | +| string.cpp:701:3:701:3 | s | string.cpp:701:5:701:9 | call to front | TAINT | +| string.cpp:701:3:701:31 | ... = ... | string.cpp:701:5:701:9 | call to front [post update] | | +| string.cpp:701:15:701:29 | call to source | string.cpp:701:3:701:31 | ... = ... | | +| string.cpp:706:17:706:20 | aa | string.cpp:706:17:706:21 | call to basic_string | TAINT | +| string.cpp:706:17:706:21 | call to basic_string | string.cpp:707:3:707:3 | s | | +| string.cpp:706:17:706:21 | call to basic_string | string.cpp:708:8:708:8 | s | | +| string.cpp:707:3:707:3 | ref arg s | string.cpp:708:8:708:8 | s | | +| string.cpp:707:3:707:3 | s | string.cpp:707:5:707:8 | call to back | TAINT | +| string.cpp:707:3:707:30 | ... = ... | string.cpp:707:5:707:8 | call to back [post update] | | +| string.cpp:707:14:707:28 | call to source | string.cpp:707:3:707:30 | ... = ... | | +| string.cpp:712:17:712:20 | aa | string.cpp:712:17:712:21 | call to basic_string | TAINT | +| string.cpp:712:17:712:21 | call to basic_string | string.cpp:713:3:713:3 | s | | +| string.cpp:712:17:712:21 | call to basic_string | string.cpp:714:8:714:8 | s | | +| string.cpp:713:3:713:3 | ref arg s | string.cpp:714:8:714:8 | s | | +| string.cpp:713:3:713:3 | s | string.cpp:713:5:713:8 | call to data | TAINT | +| string.cpp:713:3:713:13 | access to array [post update] | string.cpp:713:5:713:8 | call to data [inner post update] | | +| string.cpp:713:3:713:33 | ... = ... | string.cpp:713:3:713:13 | access to array [post update] | | +| string.cpp:713:5:713:8 | call to data | string.cpp:713:3:713:13 | access to array | TAINT | +| string.cpp:713:5:713:8 | call to data [inner post update] | string.cpp:713:3:713:3 | ref arg s | TAINT | +| string.cpp:713:12:713:12 | 0 | string.cpp:713:3:713:13 | access to array | TAINT | +| string.cpp:713:17:713:31 | call to source | string.cpp:713:3:713:33 | ... = ... | | +| string.cpp:718:17:718:20 | aa | string.cpp:718:17:718:21 | call to basic_string | TAINT | +| string.cpp:718:17:718:21 | call to basic_string | string.cpp:719:3:719:3 | s | | +| string.cpp:718:17:718:21 | call to basic_string | string.cpp:720:8:720:8 | s | | +| string.cpp:719:3:719:3 | ref arg s | string.cpp:720:8:720:8 | s | | +| string.cpp:719:3:719:3 | s | string.cpp:719:5:719:10 | call to insert | TAINT | +| string.cpp:719:3:719:30 | ... = ... | string.cpp:719:5:719:10 | call to insert [post update] | | +| string.cpp:719:5:719:10 | call to insert [post update] | string.cpp:719:3:719:3 | ref arg s | TAINT | +| string.cpp:719:15:719:18 | bb | string.cpp:719:3:719:3 | ref arg s | TAINT | +| string.cpp:719:15:719:18 | bb | string.cpp:719:5:719:10 | call to insert | TAINT | +| string.cpp:719:23:719:28 | call to source | string.cpp:719:23:719:30 | call to basic_string | TAINT | +| string.cpp:719:23:719:30 | call to basic_string | string.cpp:719:3:719:30 | ... = ... | | +| string.cpp:724:17:724:20 | aa | string.cpp:724:17:724:21 | call to basic_string | TAINT | +| string.cpp:724:17:724:21 | call to basic_string | string.cpp:725:3:725:3 | s | | +| string.cpp:724:17:724:21 | call to basic_string | string.cpp:726:8:726:8 | s | | +| string.cpp:725:3:725:3 | ref arg s | string.cpp:726:8:726:8 | s | | +| string.cpp:725:3:725:3 | s | string.cpp:725:5:725:10 | call to append | TAINT | +| string.cpp:725:3:725:27 | ... = ... | string.cpp:725:5:725:10 | call to append [post update] | | +| string.cpp:725:5:725:10 | call to append [post update] | string.cpp:725:3:725:3 | ref arg s | TAINT | +| string.cpp:725:12:725:15 | bb | string.cpp:725:3:725:3 | ref arg s | TAINT | +| string.cpp:725:12:725:15 | bb | string.cpp:725:5:725:10 | call to append | TAINT | +| string.cpp:725:20:725:25 | call to source | string.cpp:725:20:725:27 | call to basic_string | TAINT | +| string.cpp:725:20:725:27 | call to basic_string | string.cpp:725:3:725:27 | ... = ... | | +| string.cpp:730:17:730:20 | aa | string.cpp:730:17:730:21 | call to basic_string | TAINT | +| string.cpp:730:17:730:21 | call to basic_string | string.cpp:731:4:731:4 | s | | +| string.cpp:730:17:730:21 | call to basic_string | string.cpp:732:8:732:8 | s | | +| string.cpp:731:3:731:24 | ... = ... | string.cpp:731:6:731:6 | call to operator+= [post update] | | +| string.cpp:731:4:731:4 | ref arg s | string.cpp:732:8:732:8 | s | | +| string.cpp:731:4:731:4 | s | string.cpp:731:6:731:6 | call to operator+= | TAINT | +| string.cpp:731:6:731:6 | call to operator+= [post update] | string.cpp:731:4:731:4 | ref arg s | TAINT | +| string.cpp:731:9:731:12 | bb | string.cpp:731:4:731:4 | ref arg s | TAINT | +| string.cpp:731:9:731:12 | bb | string.cpp:731:6:731:6 | call to operator+= | TAINT | +| string.cpp:731:17:731:22 | call to source | string.cpp:731:17:731:24 | call to basic_string | TAINT | +| string.cpp:731:17:731:24 | call to basic_string | string.cpp:731:3:731:24 | ... = ... | | +| string.cpp:736:17:736:20 | aa | string.cpp:736:17:736:21 | call to basic_string | TAINT | +| string.cpp:736:17:736:21 | call to basic_string | string.cpp:737:3:737:3 | s | | +| string.cpp:736:17:736:21 | call to basic_string | string.cpp:738:8:738:8 | s | | +| string.cpp:737:3:737:3 | ref arg s | string.cpp:738:8:738:8 | s | | +| string.cpp:737:3:737:3 | s | string.cpp:737:5:737:11 | call to replace | TAINT | +| string.cpp:737:3:737:34 | ... = ... | string.cpp:737:5:737:11 | call to replace [post update] | | +| string.cpp:737:5:737:11 | call to replace [post update] | string.cpp:737:3:737:3 | ref arg s | TAINT | +| string.cpp:737:19:737:22 | bb | string.cpp:737:19:737:22 | call to basic_string | TAINT | +| string.cpp:737:19:737:22 | call to basic_string | string.cpp:737:3:737:3 | ref arg s | TAINT | +| string.cpp:737:19:737:22 | call to basic_string | string.cpp:737:5:737:11 | call to replace | TAINT | +| string.cpp:737:27:737:32 | call to source | string.cpp:737:27:737:34 | call to basic_string | TAINT | +| string.cpp:737:27:737:34 | call to basic_string | string.cpp:737:3:737:34 | ... = ... | | | stringstream.cpp:26:35:26:40 | amount | stringstream.cpp:64:46:64:51 | amount | | | stringstream.cpp:28:20:28:22 | call to basic_stringstream | stringstream.cpp:31:7:31:9 | ss1 | | | stringstream.cpp:28:20:28:22 | call to basic_stringstream | stringstream.cpp:37:7:37:9 | ss1 | | diff --git a/cpp/ql/test/library-tests/dataflow/taint-tests/map.cpp b/cpp/ql/test/library-tests/dataflow/taint-tests/map.cpp index 0c6bcedc88bc..0de9de46479f 100644 --- a/cpp/ql/test/library-tests/dataflow/taint-tests/map.cpp +++ b/cpp/ql/test/library-tests/dataflow/taint-tests/map.cpp @@ -3,22 +3,22 @@ using namespace std; namespace { -char *source(); +char *source(); int source(int); } void sink(char *); void sink(const char *); void sink(bool); -void sink(std::pair); -void sink(std::map); -void sink(std::map::iterator); -void sink(std::unordered_map); -void sink(std::unordered_map::iterator); -void sink(std::unordered_map >); -void sink(std::unordered_map >::iterator); +template void sink(std::pair); +void sink(std::map); +void sink(std::map::iterator); +void sink(std::unordered_map); +void sink(std::unordered_map::iterator); +void sink(std::unordered_map >); +void sink(std::unordered_map >::iterator); void test_pair() { - std::pair a, b, c; + std::pair a, b, c; a.first = "123"; sink(a.first); @@ -35,36 +35,36 @@ void test_pair() sink(c.second); // $ ast,ir sink(c); // $ ir MISSING: ast - std::pair d("123", "456"); + std::pair d("123", "456"); sink(d.first); sink(d.second); sink(d); - std::pair e(source(), "456"); + std::pair e(source(), "456"); sink(e.first); // $ ast,ir sink(e.second); sink(e); // $ ir MISSING: ast - std::pair f("123", source()); + std::pair f("123", source()); sink(f.first); sink(f.second); // $ ast,ir sink(f); // $ ast,ir - std::pair g(f); + std::pair g(f); sink(g.first); sink(g.second); // $ ast,ir sink(g); // $ ast,ir - std::pair h; + std::pair h; h = f; sink(h.first); sink(h.second); // $ ast,ir sink(h); // $ ast,ir - std::pair i("123", "456"); - std::pair j("123", source()); - std::pair k("123", source()); - std::pair l("123", "456"); + std::pair i("123", "456"); + std::pair j("123", source()); + std::pair k("123", source()); + std::pair l("123", "456"); i.swap(j); k.swap(l); sink(i.first); @@ -83,14 +83,14 @@ void test_pair() sink(make_pair("123", "456")); sink(make_pair("123", "456").first); sink(make_pair("123", "456").second); - sink(make_pair(source(), "456")); // $ MISSING: ast,ir + sink(make_pair(source(), "456")); // $ ir MISSING: ast sink(make_pair(source(), "456").first); // $ ast,ir sink(make_pair(source(), "456").second); sink(make_pair("123", source())); // $ ast,ir sink(make_pair("123", source()).first); sink(make_pair("123", source()).second); // $ ast,ir - std::pair, char *> m; + std::pair, const char *> m; m = make_pair(make_pair("123", source()), "789"); sink(m); // $ MISSING: ast,ir sink(m.first); // $ MISSING: ast,ir @@ -102,12 +102,12 @@ void test_pair() void test_map() { // insert - std::map m1, m2, m3, m4, m5, m6; + std::map m1, m2, m3, m4, m5, m6; sink(m1.insert(std::make_pair("abc", "def")).first); sink(m2.insert(std::make_pair("abc", source())).first); sink(m3.insert(std::make_pair(source(), "def")).first); // $ MISSING: ast,ir - sink(m4.insert(m4.begin(), std::pair("abc", source()))); // $ ast,ir + sink(m4.insert(m4.begin(), std::pair("abc", source()))); // $ ast,ir sink(m5.insert_or_assign("abc", source()).first); sink(m6.insert_or_assign(m6.begin(), "abc", source())); // $ ast,ir sink(m1); @@ -130,9 +130,9 @@ void test_map() sink(m6.find("def")); // $ SPURIOUS: ast,ir // copy constructors and assignment - std::map m7(m2); - std::map m8 = m2; - std::map m9; + std::map m7(m2); + std::map m8 = m2; + std::map m9; m9 = m2; sink(m7); // $ ast,ir sink(m8); // $ ast,ir @@ -142,7 +142,7 @@ void test_map() sink(m9.find("abc")); // $ ast,ir // iterators - std::map::iterator i1, i2, i3; + std::map::iterator i1, i2, i3; for (i1 = m1.begin(); i1 != m1.end(); i1++) { sink(*i1); @@ -163,7 +163,7 @@ void test_map() } // array-like access - std::map m10, m11, m12, m13; + std::map m10, m11, m12, m13; sink(m10["abc"] = "def"); sink(m11["abc"] = source()); // $ ast,ir sink(m12.at("abc") = "def"); @@ -174,7 +174,7 @@ void test_map() sink(m13["abc"]); // $ ast,ir // ranges - std::map m14; + std::map m14; m14.insert(std::make_pair("a", "a")); m14.insert(std::make_pair("b", source())); m14.insert(std::make_pair("c", source())); @@ -187,9 +187,9 @@ void test_map() sink(m14.equal_range("c").second); // swap - std::map m15, m16, m17, m18; - m15.insert(std::pair(source(), source())); - m18.insert(std::pair(source(), source())); + std::map m15, m16, m17, m18; + m15.insert(std::pair(source(), source())); + m18.insert(std::pair(source(), source())); sink(m15); // $ ast,ir sink(m16); sink(m17); @@ -202,11 +202,11 @@ void test_map() sink(m18); // $ SPURIOUS: ast // merge - std::map m19, m20, m21, m22; - m19.insert(std::pair(source(), source())); - m20.insert(std::pair("abc", "def")); - m21.insert(std::pair("abc", "def")); - m22.insert(std::pair(source(), source())); + std::map m19, m20, m21, m22; + m19.insert(std::pair(source(), source())); + m20.insert(std::pair("abc", "def")); + m21.insert(std::pair("abc", "def")); + m22.insert(std::pair(source(), source())); sink(m19); // $ ast,ir sink(m20); sink(m21); @@ -219,17 +219,17 @@ void test_map() sink(m22); // $ ast,ir // erase, clear - std::map m23; - m23.insert(std::pair(source(), source())); - m23.insert(std::pair(source(), source())); - sink(m23); // $ ast,ir=223:49 ast,ir=224:49 - sink(m23.erase(m23.begin())); // $ ast,ir=223:49 ast,ir=224:49 - sink(m23); // $ ast,ir=223:49 ast,ir=224:49 + std::map m23; std::map::value_type(source(), source()); // ensure instantiation + m23.insert(std::pair(source(), source())); + m23.insert(std::pair(source(), source())); + sink(m23); // $ ast,ir=223:61 ast,ir=224:61 + sink(m23.erase(m23.begin())); // $ ast,ir=223:61 ast,ir=224:61 + sink(m23); // $ ast,ir=223:61 ast,ir=224:61 m23.clear(); - sink(m23); // $ SPURIOUS: ast,ir=223:49 ast,ir=224:49 + sink(m23); // $ SPURIOUS: ast,ir=223:61 ast,ir=224:61 // emplace, emplace_hint - std::map m24, m25; + std::map m24, m25; std::map::value_type("abc", source()); // force the template instantiation sink(m24.emplace("abc", "def").first); sink(m24); sink(m24.emplace("abc", source()).first); @@ -240,7 +240,7 @@ void test_map() sink(m25); // $ ast,ir // try_emplace - std::map m26, m27; + std::map m26, m27; sink(m26.try_emplace("abc", "def").first); sink(m26); sink(m26.try_emplace("abc", source()).first); @@ -254,12 +254,12 @@ void test_map() void test_unordered_map() { // insert - std::unordered_map m1, m2, m3, m4, m5, m6; + std::unordered_map m1, m2, m3, m4, m5, m6; sink(m1.insert(std::make_pair("abc", "def")).first); sink(m2.insert(std::make_pair("abc", source())).first); sink(m3.insert(std::make_pair(source(), "def")).first); // $ MISSING: ast,ir - sink(m4.insert(m4.begin(), std::pair("abc", source()))); // $ ast,ir + sink(m4.insert(m4.begin(), std::pair("abc", source()))); // $ ast,ir sink(m5.insert_or_assign("abc", source()).first); sink(m6.insert_or_assign(m6.begin(), "abc", source())); // $ ast,ir sink(m1); @@ -282,9 +282,9 @@ void test_unordered_map() sink(m6.find("def")); // $ SPURIOUS: ast,ir // copy constructors and assignment - std::unordered_map m7(m2); - std::unordered_map m8 = m2; - std::unordered_map m9; + std::unordered_map m7(m2); + std::unordered_map m8 = m2; + std::unordered_map m9; m9 = m2; sink(m7); // $ ast,ir sink(m8); // $ ast,ir @@ -294,7 +294,7 @@ void test_unordered_map() sink(m9.find("abc")); // $ ast,ir // iterators - std::unordered_map::iterator i1, i2, i3; + std::unordered_map::iterator i1, i2, i3; for (i1 = m1.begin(); i1 != m1.end(); i1++) { sink(*i1); @@ -315,7 +315,7 @@ void test_unordered_map() } // array-like access - std::unordered_map m10, m11, m12, m13; + std::unordered_map m10, m11, m12, m13; sink(m10["abc"] = "def"); sink(m11["abc"] = source()); // $ ast,ir sink(m12.at("abc") = "def"); @@ -326,7 +326,7 @@ void test_unordered_map() sink(m13["abc"]); // $ ast,ir // ranges - std::unordered_map m14; + std::unordered_map m14; m14.insert(std::make_pair("a", "a")); m14.insert(std::make_pair("b", source())); m14.insert(std::make_pair("c", source())); @@ -336,9 +336,9 @@ void test_unordered_map() sink(m14.equal_range("c").second); // swap - std::unordered_map m15, m16, m17, m18; - m15.insert(std::pair(source(), source())); - m18.insert(std::pair(source(), source())); + std::unordered_map m15, m16, m17, m18; + m15.insert(std::pair(source(), source())); + m18.insert(std::pair(source(), source())); sink(m15); // $ ast,ir sink(m16); sink(m17); @@ -351,11 +351,11 @@ void test_unordered_map() sink(m18); // $ SPURIOUS: ast // merge - std::unordered_map m19, m20, m21, m22; - m19.insert(std::pair(source(), source())); - m20.insert(std::pair("abc", "def")); - m21.insert(std::pair("abc", "def")); - m22.insert(std::pair(source(), source())); + std::unordered_map m19, m20, m21, m22; + m19.insert(std::pair(source(), source())); + m20.insert(std::pair("abc", "def")); + m21.insert(std::pair("abc", "def")); + m22.insert(std::pair(source(), source())); sink(m19); // $ ast,ir sink(m20); sink(m21); @@ -368,17 +368,17 @@ void test_unordered_map() sink(m22); // $ ast,ir // erase, clear - std::unordered_map m23; - m23.insert(std::pair(source(), source())); - m23.insert(std::pair(source(), source())); - sink(m23); // $ ast,ir=372:49 ast,ir=373:49 - sink(m23.erase(m23.begin())); // $ ast,ir=372:49 ast,ir=373:49 - sink(m23); // $ ast,ir=372:49 ast,ir=373:49 + std::unordered_map m23; + m23.insert(std::pair(source(), source())); + m23.insert(std::pair(source(), source())); + sink(m23); // $ ast,ir=372:61 ast,ir=373:61 + sink(m23.erase(m23.begin())); // $ ast,ir=372:61 ast,ir=373:61 + sink(m23); // $ ast,ir=372:61 ast,ir=373:61 m23.clear(); - sink(m23); // $ SPURIOUS: ast,ir=372:49 ast,ir=373:49 + sink(m23); // $ SPURIOUS: ast,ir=372:61 ast,ir=373:61 // emplace, emplace_hint - std::unordered_map m24, m25; + std::unordered_map m24, m25; sink(m24.emplace("abc", "def").first); sink(m24); sink(m24.emplace("abc", source()).first); @@ -389,7 +389,7 @@ void test_unordered_map() sink(m25); // $ ast,ir // try_emplace - std::unordered_map m26, m27, m28; + std::unordered_map m26, m27, m28; sink(m26.try_emplace("abc", "def").first); sink(m26.try_emplace("abc", "def").second); sink(m26); @@ -406,34 +406,34 @@ void test_unordered_map() sink(m28); // $ MISSING: ast,ir // additional try_emplace test cases - std::unordered_map> m29, m30, m31, m32; + std::unordered_map> m29, m30, m31, m32; std::pair inst1(0, 0); int x; std::pair inst2(x, x); sink(m29.try_emplace("abc", 1, 2)); sink(m29); sink(m29["abc"]); sink(m30.try_emplace(source(), 1, 2)); // $ MISSING: ast,ir sink(m30); // $ MISSING: ast,ir sink(m30["abc"]); - sink(m31.try_emplace("abc", source(), 2)); // $ ast,ir + sink(m31.try_emplace("abc", source(0), 2)); // $ ast,ir sink(m31); // $ ast,ir sink(m31["abc"]); // $ ast,ir - sink(m32.try_emplace("abc", 1, source())); // $ ast,ir + sink(m32.try_emplace("abc", 1, source(0))); // $ ast,ir sink(m32); // $ ast,ir sink(m32["abc"]); // $ ast,ir // additional emplace test cases - std::unordered_map m33; + std::unordered_map m33; sink(m33.emplace(source(), "def").first); // $ MISSING: ast,ir sink(m33); // $ MISSING: ast,ir - std::unordered_map m34, m35; - sink(m34.emplace(std::pair("abc", "def")).first); + std::unordered_map m34, m35; + sink(m34.emplace(std::pair("abc", "def")).first); sink(m34); - sink(m34.emplace(std::pair("abc", source())).first); + sink(m34.emplace(std::pair("abc", source())).first); sink(m34); // $ ast,ir sink(m34.emplace_hint(m34.begin(), "abc", "def")); // $ ast,ir sink(m35.emplace().first); sink(m35); - sink(m35.emplace(std::pair(source(), "def")).first); // $ MISSING: ast,ir + sink(m35.emplace(std::pair(source(), "def")).first); // $ MISSING: ast,ir sink(m35); // $ MISSING: ast,ir } diff --git a/cpp/ql/test/library-tests/dataflow/taint-tests/stl.h b/cpp/ql/test/library-tests/dataflow/taint-tests/stl.h index 57be2e9769af..5aa3e10feadc 100644 --- a/cpp/ql/test/library-tests/dataflow/taint-tests/stl.h +++ b/cpp/ql/test/library-tests/dataflow/taint-tests/stl.h @@ -1,28 +1,4 @@ - -typedef unsigned long size_t; - - - - - - - - - - - - - - - - - - - - - - -#include "type_traits.h" +#include "../../../include/type_traits.h" namespace std { @@ -135,6 +111,25 @@ namespace std typedef size_t size_type; }; + template + struct enable_if {}; + + template + struct enable_if { typedef T type; }; + + template + class basic_string_view; + + template + struct is_string_view_like { + static const bool value = false; + }; + + template + struct is_string_view_like> { + static const bool value = true; + }; + template, class Allocator = allocator > class basic_string { public: @@ -147,10 +142,17 @@ namespace std explicit basic_string(const Allocator& a = Allocator()); basic_string(const charT* s, const Allocator& a = Allocator()); template basic_string(InputIterator begin, InputIterator end, const Allocator& a = Allocator()); + + template::value>::type* = nullptr> + explicit basic_string(const StringViewLike&, const Allocator& = Allocator()); + + template::value>::type* = nullptr> + basic_string(const StringViewLike&, size_type, size_type, const Allocator& = Allocator()); const charT* c_str() const; charT* data() noexcept; size_t length() const; + size_t size() const; typedef std::iterator iterator; typedef std::iterator const_iterator; @@ -176,18 +178,41 @@ namespace std template basic_string& operator+=(const T& t); basic_string& operator+=(const charT* s); basic_string& append(const basic_string& str); + + template::value>::type* = nullptr> + basic_string& append(const StringViewLike&); template::value>::type* = nullptr> basic_string& append(const StringViewLike&, size_type, size_type); + basic_string& append(const charT* s); basic_string& append(size_type n, charT c); template basic_string& append(InputIterator first, InputIterator last); basic_string& assign(const basic_string& str); + + template::value>::type* = nullptr> + basic_string& assign(const StringViewLike&); template::value>::type* = nullptr> + + basic_string& assign(const StringViewLike&, size_type, size_type); + basic_string& assign(size_type n, charT c); template basic_string& assign(InputIterator first, InputIterator last); basic_string& insert(size_type pos, const basic_string& str); + + template::value>::type* = nullptr> + basic_string& insert(size_type, const StringViewLike&); template::value>::type* = nullptr> + basic_string& insert(size_type, const StringViewLike&, size_type, size_type); + basic_string& insert(size_type pos, size_type n, charT c); basic_string& insert(size_type pos, const charT* s); iterator insert(const_iterator p, size_type n, charT c); template iterator insert(const_iterator p, InputIterator first, InputIterator last); basic_string& replace(size_type pos1, size_type n1, const basic_string& str); + + template::value>::type* = nullptr> + basic_string& replace(size_type, size_type, const StringViewLike&); template::value>::type* = nullptr> + + basic_string& replace(const_iterator, const_iterator, const StringViewLike&); + + template::value>::type* = nullptr> + basic_string& replace(size_type, size_type, const StringViewLike&, size_type, size_type); basic_string& replace(size_type pos1, size_type n1, size_type n2, charT c); size_type copy(charT* s, size_type n, size_type pos = 0) const; void clear() noexcept; @@ -197,6 +222,12 @@ namespace std template basic_string operator+(const basic_string& lhs, const basic_string& rhs); template basic_string operator+(const basic_string& lhs, const charT* rhs); + + template + basic_string operator+(charT, const basic_string&); + + template + basic_string operator+(charT, basic_string&&); typedef basic_string string; } @@ -289,7 +320,9 @@ namespace std { using iterator = std::iterator; using const_iterator = std::iterator; - vector() noexcept(noexcept(Allocator())) : vector(Allocator()) { } + vector() noexcept(noexcept(Allocator())); + vector(const vector& x); + vector(vector&& x) noexcept; explicit vector(const Allocator&) noexcept; explicit vector(size_type n, const Allocator& = Allocator()); vector(size_type n, const T& value, const Allocator& = Allocator()); @@ -419,6 +452,11 @@ namespace std { using const_iterator = std::iterator; map() /*: map(Compare()) { }*/; + template map(InputIt, InputIt); + + template map(InputIt, InputIt, const Compare&); + + template map(InputIt, InputIt, const Compare&, const Allocator&); map(const map& x); map(map&& x); ~map(); @@ -433,6 +471,7 @@ namespace std { T& operator[](const key_type& x); T& operator[](key_type&& x); + template T& operator[](K&& x); T& at(const key_type& x); const T& at(const key_type& x) const; @@ -441,9 +480,10 @@ namespace std { pair insert(const value_type& x); pair insert(value_type&& x); + template pair insert(P&& x); iterator insert(const_iterator position, const value_type& x); iterator insert(const_iterator position, value_type&& x); - + template iterator insert(const_iterator position, P&& x); template pair try_emplace(const key_type& k, Args&&... args); template pair try_emplace(key_type&& k, Args&&... args); template iterator try_emplace(const_iterator hint, const key_type& k, Args&&... args); @@ -650,14 +690,43 @@ namespace std { class basic_string_view { public: using size_type = size_t; + using const_iterator = const CharT*; basic_string_view() noexcept; basic_string_view(const basic_string_view&) noexcept; basic_string_view(const CharT*, size_type); basic_string_view(const CharT*); template basic_string_view(It, End); - template explicit basic_string_view(R&&); + template>>::value>::type* = nullptr> + explicit basic_string_view(R&&); basic_string_view& operator=(const basic_string_view&) noexcept; + + const_iterator begin() const; + const_iterator end() const; + const_iterator cbegin() const; + const_iterator cend() const; + const CharT& operator[](size_type) const; + const CharT& at(size_type) const; + const CharT& front() const; + const CharT& back() const; + const CharT* data() const; + void remove_prefix(size_type); + void remove_suffix(size_type); + void swap(basic_string_view&); + size_type copy(CharT*, size_type, size_type = 0) const; + basic_string_view substr(size_type = 0, size_type = -1) const; + basic_string_view subview(size_type = 0, size_type = -1) const; + + size_type size() const; + size_type length() const; + size_type max_size() const; + bool empty() const; + int compare(basic_string_view) const; + bool starts_with(basic_string_view) const; + bool ends_with(basic_string_view) const; + bool contains(basic_string_view) const; + size_type find(basic_string_view) const; + size_type rfind(basic_string_view) const; }; using string_view = basic_string_view; diff --git a/cpp/ql/test/library-tests/dataflow/taint-tests/string.cpp b/cpp/ql/test/library-tests/dataflow/taint-tests/string.cpp index 4da4d3f3fe7a..251b050b262e 100644 --- a/cpp/ql/test/library-tests/dataflow/taint-tests/string.cpp +++ b/cpp/ql/test/library-tests/dataflow/taint-tests/string.cpp @@ -19,6 +19,7 @@ void sink(const std::string &s); void sink(const char *filename, const char *mode); void sink(char); void sink(std::string::iterator); +void sink(std::string_view); void test_string() { @@ -564,3 +565,176 @@ void test_string_return_assign() { sink(f); // $ SPURIOUS: ast,ir } } + +namespace ns_string_view { + std::string_view source(); +} + +void test_string_view_like() { + std::string_view view = ns_string_view::source(); + std::string constructed(view), sliced(view, 0, 1); + sink(constructed); // $ ir,ast + sink(sliced); // $ ir,ast + + std::string assigned, appended, inserted, replaced; + sink(assigned.assign(view)); // $ ir,ast + sink(appended.append(view, 0, 1)); // $ ir,ast + sink(inserted.insert(0, view)); // $ ir,ast + sink(replaced.replace(0, 0, view)); // $ ir,ast + + char tainted = ns_char::source(); + sink(tainted + std::string("clean")); // $ ast MISSING: ir +} + +namespace string_view_tests { + +namespace iterators { +struct Iterator {}; +Iterator source(); +} + +namespace ranges { + struct Range {}; + Range source(); +} + +void constructors() { + const char* data = source(); + std::string_view terminated(data); + sink(terminated); // $ ast,ir + sink(terminated.data()); // $ MISSING: ir,ast + + std::string_view counted(data, 5); + sink(counted); // $ MISSING: ir,ast + sink(counted.data()); // $ MISSING: ir,ast + + std::string_view iterators(data, data + 5); + sink(iterators); // $ MISSING: ir,ast +} + +void copy_and_assignment() { + const auto original = ns_string_view::source(); + std::string_view copied(original); + sink(copied); // $ ast,ir + sink(copied.data()); // $ MISSING: ir,ast + std::string_view moved(static_cast(original)); + sink(moved); // $ ast,ir + + std::string_view assigned; + sink(assigned = original); // $ ast,ir + sink(assigned); // $ ast,ir + + const std::string_view clean; + std::string_view chained; + (chained = clean) = original; + sink(chained); // $ MISSING: ast,ir + + copied = clean; + sink(copied); // $ SPURIOUS: ast +} + +void iterator_and_range_constructors() { + iterators::Iterator it = iterators::source(); + std::string_view iterators(it, it); + sink(iterators); // $ MISSING: ir,ast + + ranges::Range range = ranges::source(); + std::string_view from_range(range); + sink(from_range); // $ MISSING: ir,ast + + std::vector container; + container.push_back(ns_char::source()); + std::string_view from_container(container); + sink(from_container); // $ MISSING: ir + std::string_view from_container_iterators(container.begin(), container.end()); + sink(from_container_iterators); // $ MISSING: ir +} + +void accessors() { + auto view = ns_string_view::source(); + sink(view.data()); // $ MISSING: ir,ast + sink(view[0]); // $ MISSING: ir,ast + sink(view.at(0)); // $ MISSING: ir,ast + sink(view.front()); // $ MISSING: ir,ast + sink(view.back()); // $ MISSING: ir,ast + sink(*view.begin()); // $ ast,ir + sink(*view.cbegin()); // $ ast,ir +} + +void trimming() { + auto prefix = ns_string_view::source(); + prefix.remove_prefix(1); + sink(prefix); // $ ast,ir + sink(prefix.data()); // $ MISSING: ir,ast + + auto suffix = ns_string_view::source(); + suffix.remove_suffix(1); + sink(suffix); // $ ast,ir + sink(suffix.data()); // $ MISSING: ir,ast +} + +void operations() { + auto view = ns_string_view::source(); + sink(view.substr(1, 2)); // $ MISSING: ast,ir + sink(view.subview(1, 2)); // $ MISSING: ast,ir + + char buffer[10] = {}; + sink(view.copy(buffer, 2)); + sink(buffer); // $ MISSING: ast,ir + + std::string_view clean; + view.swap(clean); + sink(view); // $ SPURIOUS: ast + sink(clean); // $ ir MISSING: ast +} +} + +void test_string_reverse_flow() { + { + std::string s("aa"); + (s = "bb") += source(); + sink(s); // $ ast ir + } + + { + std::string s("aa"); + s.front() = ns_char::source(); + sink(s); // $ MISSING: ir,ast + } + + { + std::string s("aa"); + s.back() = ns_char::source(); + sink(s); // $ MISSING: ir,ast + } + + { + std::string s("aa"); + s.data()[0] = ns_char::source(); + sink(s); // $ ast,ir + } + + { + std::string s("aa"); + s.insert(0, "bb") = source(); + sink(s); // $ ast,ir + } + + { + std::string s("aa"); + s.append("bb") = source(); + sink(s); // $ ast,ir + } + + { + std::string s("aa"); + (s += "bb") = source(); + sink(s); // $ ast,ir + } + + { + std::string s("aa"); + s.replace(0, 1, "bb") = source(); + sink(s); // $ ast,ir + } +} diff --git a/cpp/ql/test/library-tests/dataflow/taint-tests/test_mad-signatures.expected b/cpp/ql/test/library-tests/dataflow/taint-tests/test_mad-signatures.expected index f2339b9a5084..25cc727930d0 100644 --- a/cpp/ql/test/library-tests/dataflow/taint-tests/test_mad-signatures.expected +++ b/cpp/ql/test/library-tests/dataflow/taint-tests/test_mad-signatures.expected @@ -97,44 +97,44 @@ signatureMatches | atl.cpp:1333:13:1333:21 | operator= | Microsoft::WRL | (const ComPtr &) | ComPtr | operator= | 0 | | atl.cpp:1334:13:1334:21 | operator= | Microsoft::WRL | (ComPtr &&) | ComPtr | operator= | 0 | | atl.cpp:1336:13:1336:21 | operator= | Microsoft::WRL | (ComPtr &&) | ComPtr | operator= | 0 | -| stl.h:294:12:294:17 | vector | std | (const vector &,const Allocator &) | vector | vector | 1 | -| stl.h:294:12:294:17 | vector | std | (const vector &,const Allocator &) | vector | vector | 1 | -| stl.h:294:12:294:17 | vector | std | (const vector &,const Allocator &) | vector | vector | 1 | -| stl.h:294:12:294:17 | vector | std | (vector &&,const Allocator &) | vector | vector | 1 | -| stl.h:294:12:294:17 | vector | std | (vector &&,const Allocator &) | vector | vector | 1 | -| stl.h:294:12:294:17 | vector | std | (vector &&,const Allocator &) | vector | vector | 1 | -| stl.h:295:3:295:8 | vector | std | (InputIterator,InputIterator,const Allocator &) | vector | vector | 2 | -| stl.h:295:3:295:8 | vector | std | (InputIterator,InputIterator,const Allocator &) | vector | vector | 2 | -| stl.h:295:3:295:8 | vector | std | (size_type,const T &,const Allocator &) | vector | vector | 0 | -| stl.h:295:3:295:8 | vector | std | (size_type,const T &,const Allocator &) | vector | vector | 0 | -| stl.h:295:3:295:8 | vector | std | (size_type,const T &,const Allocator &) | vector | vector | 1 | -| stl.h:295:3:295:8 | vector | std | (size_type,const T &,const Allocator &) | vector | vector | 1 | -| stl.h:295:3:295:8 | vector | std | (size_type,const T &,const Allocator &) | vector | vector | 2 | -| stl.h:295:3:295:8 | vector | std | (size_type,const T &,const Allocator &) | vector | vector | 2 | -| stl.h:296:101:296:106 | vector | std | (InputIterator,InputIterator,const Allocator &) | vector | vector | 0 | -| stl.h:296:101:296:106 | vector | std | (InputIterator,InputIterator,const Allocator &) | vector | vector | 1 | -| stl.h:296:101:296:106 | vector | std | (InputIterator,InputIterator,const Allocator &) | vector | vector | 2 | -| stl.h:296:101:296:106 | vector | std | (size_type,const T &,const Allocator &) | vector | vector | 2 | -| stl.h:303:106:303:111 | assign | std | (InputIt,InputIt) | vector | assign | 0 | -| stl.h:303:106:303:111 | assign | std | (InputIt,InputIt) | vector | assign | 1 | -| stl.h:306:8:306:13 | assign | std | (size_type,const T &) | vector | assign | 0 | -| stl.h:306:8:306:13 | assign | std | (size_type,const T &) | vector | assign | 0 | -| stl.h:306:8:306:13 | assign | std | (size_type,const T &) | vector | assign | 0 | -| stl.h:306:8:306:13 | assign | std | (size_type,const T &) | vector | assign | 1 | -| stl.h:306:8:306:13 | assign | std | (size_type,const T &) | vector | assign | 1 | -| stl.h:306:8:306:13 | assign | std | (size_type,const T &) | vector | assign | 1 | -| stl.h:331:12:331:17 | insert | std | (const_iterator,T &&) | vector | insert | 0 | -| stl.h:331:12:331:17 | insert | std | (const_iterator,T &&) | vector | insert | 1 | -| stl.h:333:42:333:47 | insert | std | (const_iterator,InputIt,InputIt) | vector | insert | 0 | -| stl.h:333:42:333:47 | insert | std | (const_iterator,InputIt,InputIt) | vector | insert | 0 | -| stl.h:333:42:333:47 | insert | std | (const_iterator,InputIt,InputIt) | vector | insert | 1 | -| stl.h:333:42:333:47 | insert | std | (const_iterator,InputIt,InputIt) | vector | insert | 1 | -| stl.h:333:42:333:47 | insert | std | (const_iterator,InputIt,InputIt) | vector | insert | 2 | -| stl.h:333:42:333:47 | insert | std | (const_iterator,InputIt,InputIt) | vector | insert | 2 | -| stl.h:678:33:678:38 | format | std | (format_string,Args &&) | | format | 0 | -| stl.h:678:33:678:38 | format | std | (format_string,Args &&) | | format | 0 | -| stl.h:678:33:678:38 | format | std | (format_string,Args &&) | | format | 1 | -| stl.h:678:33:678:38 | format | std | (format_string,Args &&) | | format | 1 | +| stl.h:327:12:327:17 | vector | std | (const vector &,const Allocator &) | vector | vector | 1 | +| stl.h:327:12:327:17 | vector | std | (const vector &,const Allocator &) | vector | vector | 1 | +| stl.h:327:12:327:17 | vector | std | (const vector &,const Allocator &) | vector | vector | 1 | +| stl.h:327:12:327:17 | vector | std | (vector &&,const Allocator &) | vector | vector | 1 | +| stl.h:327:12:327:17 | vector | std | (vector &&,const Allocator &) | vector | vector | 1 | +| stl.h:327:12:327:17 | vector | std | (vector &&,const Allocator &) | vector | vector | 1 | +| stl.h:328:3:328:8 | vector | std | (InputIterator,InputIterator,const Allocator &) | vector | vector | 2 | +| stl.h:328:3:328:8 | vector | std | (InputIterator,InputIterator,const Allocator &) | vector | vector | 2 | +| stl.h:328:3:328:8 | vector | std | (size_type,const T &,const Allocator &) | vector | vector | 0 | +| stl.h:328:3:328:8 | vector | std | (size_type,const T &,const Allocator &) | vector | vector | 0 | +| stl.h:328:3:328:8 | vector | std | (size_type,const T &,const Allocator &) | vector | vector | 1 | +| stl.h:328:3:328:8 | vector | std | (size_type,const T &,const Allocator &) | vector | vector | 1 | +| stl.h:328:3:328:8 | vector | std | (size_type,const T &,const Allocator &) | vector | vector | 2 | +| stl.h:328:3:328:8 | vector | std | (size_type,const T &,const Allocator &) | vector | vector | 2 | +| stl.h:329:101:329:106 | vector | std | (InputIterator,InputIterator,const Allocator &) | vector | vector | 0 | +| stl.h:329:101:329:106 | vector | std | (InputIterator,InputIterator,const Allocator &) | vector | vector | 1 | +| stl.h:329:101:329:106 | vector | std | (InputIterator,InputIterator,const Allocator &) | vector | vector | 2 | +| stl.h:329:101:329:106 | vector | std | (size_type,const T &,const Allocator &) | vector | vector | 2 | +| stl.h:336:106:336:111 | assign | std | (InputIt,InputIt) | vector | assign | 0 | +| stl.h:336:106:336:111 | assign | std | (InputIt,InputIt) | vector | assign | 1 | +| stl.h:339:8:339:13 | assign | std | (size_type,const T &) | vector | assign | 0 | +| stl.h:339:8:339:13 | assign | std | (size_type,const T &) | vector | assign | 0 | +| stl.h:339:8:339:13 | assign | std | (size_type,const T &) | vector | assign | 0 | +| stl.h:339:8:339:13 | assign | std | (size_type,const T &) | vector | assign | 1 | +| stl.h:339:8:339:13 | assign | std | (size_type,const T &) | vector | assign | 1 | +| stl.h:339:8:339:13 | assign | std | (size_type,const T &) | vector | assign | 1 | +| stl.h:364:12:364:17 | insert | std | (const_iterator,T &&) | vector | insert | 0 | +| stl.h:364:12:364:17 | insert | std | (const_iterator,T &&) | vector | insert | 1 | +| stl.h:366:42:366:47 | insert | std | (const_iterator,InputIt,InputIt) | vector | insert | 0 | +| stl.h:366:42:366:47 | insert | std | (const_iterator,InputIt,InputIt) | vector | insert | 0 | +| stl.h:366:42:366:47 | insert | std | (const_iterator,InputIt,InputIt) | vector | insert | 1 | +| stl.h:366:42:366:47 | insert | std | (const_iterator,InputIt,InputIt) | vector | insert | 1 | +| stl.h:366:42:366:47 | insert | std | (const_iterator,InputIt,InputIt) | vector | insert | 2 | +| stl.h:366:42:366:47 | insert | std | (const_iterator,InputIt,InputIt) | vector | insert | 2 | +| stl.h:747:33:747:38 | format | std | (format_string,Args &&) | | format | 0 | +| stl.h:747:33:747:38 | format | std | (format_string,Args &&) | | format | 0 | +| stl.h:747:33:747:38 | format | std | (format_string,Args &&) | | format | 1 | +| stl.h:747:33:747:38 | format | std | (format_string,Args &&) | | format | 1 | | taint.cpp:847:5:847:11 | toupper | | (int) | | toupper | 0 | | taint.cpp:848:5:848:11 | tolower | | (int) | | tolower | 0 | getSignatureParameterName @@ -27341,27 +27341,27 @@ getParameterTypeName | format.cpp:3:16:3:16 | operator= | 0 | FILE && | | format.cpp:3:16:3:16 | operator= | 0 | const FILE & | | format.cpp:5:5:5:12 | snprintf | 0 | char * | +| format.cpp:5:5:5:12 | snprintf | 1 | decltype(...) | | format.cpp:5:5:5:12 | snprintf | 1 | size_t | -| format.cpp:5:5:5:12 | snprintf | 1 | unsigned long | | format.cpp:5:5:5:12 | snprintf | 2 | const char * | | format.cpp:5:5:5:12 | snprintf | 3 | ... | | format.cpp:6:5:6:11 | sprintf | 0 | char * | | format.cpp:6:5:6:11 | sprintf | 1 | const char * | | format.cpp:6:5:6:11 | sprintf | 2 | ... | | format.cpp:7:5:7:12 | swprintf | 0 | wchar_t * | +| format.cpp:7:5:7:12 | swprintf | 1 | decltype(...) | | format.cpp:7:5:7:12 | swprintf | 1 | size_t | -| format.cpp:7:5:7:12 | swprintf | 1 | unsigned long | | format.cpp:7:5:7:12 | swprintf | 2 | const wchar_t * | | format.cpp:7:5:7:12 | swprintf | 3 | ... | | format.cpp:14:5:14:13 | vsnprintf | 0 | char * | +| format.cpp:14:5:14:13 | vsnprintf | 1 | decltype(...) | | format.cpp:14:5:14:13 | vsnprintf | 1 | size_t | -| format.cpp:14:5:14:13 | vsnprintf | 1 | unsigned long | | format.cpp:14:5:14:13 | vsnprintf | 2 | const char * | | format.cpp:14:5:14:13 | vsnprintf | 3 | va_list | | format.cpp:14:5:14:13 | vsnprintf | 3 | void * | | format.cpp:16:5:16:13 | mysprintf | 0 | char * | +| format.cpp:16:5:16:13 | mysprintf | 1 | decltype(...) | | format.cpp:16:5:16:13 | mysprintf | 1 | size_t | -| format.cpp:16:5:16:13 | mysprintf | 1 | unsigned long | | format.cpp:16:5:16:13 | mysprintf | 2 | const char * | | format.cpp:16:5:16:13 | mysprintf | 3 | ... | | format.cpp:28:5:28:10 | sscanf | 0 | const char * | @@ -27370,15 +27370,22 @@ getParameterTypeName | format.cpp:142:8:142:13 | strlen | 0 | const char * | | format.cpp:143:8:143:13 | wcslen | 0 | const wchar_t * | | format.cpp:169:6:169:9 | test | 0 | format_string | +| map.cpp:6:21:6:26 | source | 0 | int | | map.cpp:8:6:8:9 | sink | 0 | char * | | map.cpp:9:6:9:9 | sink | 0 | const char * | | map.cpp:10:6:10:9 | sink | 0 | bool | -| map.cpp:11:6:11:9 | sink | 0 | pair | -| map.cpp:12:6:12:9 | sink | 0 | map, allocator>> | +| map.cpp:11:39:11:42 | sink | 0 | pair | +| map.cpp:11:39:11:42 | sink | 0 | pair | +| map.cpp:11:39:11:42 | sink | 0 | pair | +| map.cpp:11:39:11:42 | sink | 0 | pair | +| map.cpp:11:39:11:42 | sink | 0 | pair | +| map.cpp:11:39:11:42 | sink | 0 | pair | +| map.cpp:11:39:11:42 | sink | 0 | pair | +| map.cpp:12:6:12:9 | sink | 0 | map, allocator>> | | map.cpp:13:6:13:9 | sink | 0 | iterator | -| map.cpp:14:6:14:9 | sink | 0 | unordered_map, equal_to, allocator>> | +| map.cpp:14:6:14:9 | sink | 0 | unordered_map, equal_to, allocator>> | | map.cpp:15:6:15:9 | sink | 0 | iterator | -| map.cpp:16:6:16:9 | sink | 0 | unordered_map, hash, equal_to, allocator>>> | +| map.cpp:16:6:16:9 | sink | 0 | unordered_map, hash, equal_to, allocator>>> | | map.cpp:17:6:17:9 | sink | 0 | iterator | | map.cpp:442:7:442:19 | indirect_sink | 0 | int * | | movableclass.cpp:3:6:3:9 | sink | 0 | ... | @@ -27447,460 +27454,502 @@ getParameterTypeName | standalone_iterators.cpp:102:6:102:9 | sink | 0 | insert_iterator_by_trait | | standalone_iterators.cpp:103:27:103:36 | operator+= | 0 | insert_iterator_by_trait & | | standalone_iterators.cpp:103:27:103:36 | operator+= | 1 | int | -| stl.h:29:34:29:40 | forward | 0 | remove_reference_t & | -| stl.h:29:34:29:40 | forward | 0 | remove_reference_t & | -| stl.h:29:34:29:40 | forward | 0 | remove_reference_t & | -| stl.h:29:34:29:40 | forward | 0 | remove_reference_t & | -| stl.h:29:34:29:40 | forward | 0 | type & | -| stl.h:29:34:29:40 | forward | 0 | type & | -| stl.h:29:34:29:40 | forward | 0 | type & | -| stl.h:29:34:29:40 | forward | 0 | type & | -| stl.h:49:3:49:10 | iterator | 0 | const iterator & | -| stl.h:49:3:49:10 | iterator | 0 | const iterator & | -| stl.h:49:3:49:10 | iterator | 0 | const iterator & | -| stl.h:49:3:49:10 | iterator | 0 | const iterator & | -| stl.h:49:3:49:10 | iterator | 0 | const iterator & | -| stl.h:49:3:49:10 | iterator | 0 | const iterator & | -| stl.h:49:3:49:10 | iterator | 0 | const iterator & | -| stl.h:49:3:49:10 | iterator | 0 | const iterator & | -| stl.h:52:12:52:21 | operator++ | 0 | int | -| stl.h:52:12:52:21 | operator++ | 0 | int | -| stl.h:52:12:52:21 | operator++ | 0 | int | -| stl.h:52:12:52:21 | operator++ | 0 | int | -| stl.h:52:12:52:21 | operator++ | 0 | int | -| stl.h:54:12:54:21 | operator-- | 0 | int | -| stl.h:56:8:56:17 | operator!= | 0 | iterator | -| stl.h:56:8:56:17 | operator!= | 0 | iterator | -| stl.h:56:8:56:17 | operator!= | 0 | iterator | -| stl.h:56:8:56:17 | operator!= | 0 | iterator | -| stl.h:56:8:56:17 | operator!= | 0 | iterator | -| stl.h:56:8:56:17 | operator!= | 0 | iterator | -| stl.h:59:12:59:20 | operator+ | 0 | int | -| stl.h:60:12:60:20 | operator- | 0 | int | -| stl.h:61:13:61:22 | operator+= | 0 | int | -| stl.h:61:13:61:22 | operator+= | 0 | int | -| stl.h:62:13:62:22 | operator-= | 0 | int | -| stl.h:64:18:64:27 | operator[] | 0 | int | -| stl.h:67:9:67:9 | operator= | 0 | const input_iterator_tag & | -| stl.h:67:9:67:9 | operator= | 0 | input_iterator_tag && | -| stl.h:68:9:68:9 | operator= | 0 | const forward_iterator_tag & | -| stl.h:68:9:68:9 | operator= | 0 | forward_iterator_tag && | -| stl.h:69:9:69:9 | operator= | 0 | bidirectional_iterator_tag && | -| stl.h:69:9:69:9 | operator= | 0 | const bidirectional_iterator_tag & | -| stl.h:70:9:70:9 | operator= | 0 | const random_access_iterator_tag & | -| stl.h:70:9:70:9 | operator= | 0 | random_access_iterator_tag && | -| stl.h:72:9:72:9 | operator= | 0 | const output_iterator_tag & | -| stl.h:72:9:72:9 | operator= | 0 | output_iterator_tag && | -| stl.h:86:22:86:41 | back_insert_iterator | 0 | class:0 & | -| stl.h:86:22:86:41 | back_insert_iterator | 0 | class:0 & | -| stl.h:88:25:88:33 | operator= | 0 | value_type && | -| stl.h:88:25:88:33 | operator= | 0 | value_type && | -| stl.h:91:24:91:33 | operator++ | 0 | int | -| stl.h:91:24:91:33 | operator++ | 0 | int | -| stl.h:95:44:95:44 | back_inserter | 0 | func:0 & | -| stl.h:95:44:95:44 | back_inserter | 0 | func:0 & | -| stl.h:147:12:147:23 | basic_string | 0 | const class:2 & | -| stl.h:148:3:148:14 | basic_string | 0 | const class:0 * | -| stl.h:148:3:148:14 | basic_string | 1 | const class:2 & | -| stl.h:149:33:149:44 | basic_string | 0 | func:0 | -| stl.h:149:33:149:44 | basic_string | 1 | func:0 | -| stl.h:149:33:149:44 | basic_string | 2 | const class:2 & | -| stl.h:165:8:165:16 | push_back | 0 | class:0 | -| stl.h:173:13:173:22 | operator[] | 0 | size_type | -| stl.h:175:13:175:14 | at | 0 | size_type | -| stl.h:176:35:176:44 | operator+= | 0 | const func:0 & | -| stl.h:176:35:176:44 | operator+= | 0 | const func:0 & | -| stl.h:177:17:177:26 | operator+= | 0 | const class:0 * | -| stl.h:178:17:178:22 | append | 0 | const basic_string & | -| stl.h:179:17:179:22 | append | 0 | const class:0 * | -| stl.h:180:17:180:22 | append | 0 | size_type | -| stl.h:180:17:180:22 | append | 1 | class:0 | -| stl.h:181:47:181:52 | append | 0 | func:0 | -| stl.h:181:47:181:52 | append | 1 | func:0 | -| stl.h:182:17:182:22 | assign | 0 | const basic_string & | -| stl.h:183:17:183:22 | assign | 0 | size_type | -| stl.h:183:17:183:22 | assign | 1 | class:0 | -| stl.h:184:47:184:52 | assign | 0 | func:0 | -| stl.h:184:47:184:52 | assign | 1 | func:0 | -| stl.h:185:17:185:22 | insert | 0 | size_type | -| stl.h:185:17:185:22 | insert | 1 | const basic_string & | -| stl.h:186:17:186:22 | insert | 0 | size_type | -| stl.h:186:17:186:22 | insert | 1 | size_type | -| stl.h:186:17:186:22 | insert | 2 | class:0 | -| stl.h:187:17:187:22 | insert | 0 | size_type | -| stl.h:187:17:187:22 | insert | 1 | const class:0 * | -| stl.h:188:12:188:17 | insert | 0 | const_iterator | -| stl.h:188:12:188:17 | insert | 1 | size_type | -| stl.h:188:12:188:17 | insert | 2 | class:0 | -| stl.h:189:42:189:47 | insert | 0 | const_iterator | -| stl.h:189:42:189:47 | insert | 1 | func:0 | -| stl.h:189:42:189:47 | insert | 2 | func:0 | -| stl.h:190:17:190:23 | replace | 0 | size_type | -| stl.h:190:17:190:23 | replace | 1 | size_type | -| stl.h:190:17:190:23 | replace | 2 | const basic_string & | -| stl.h:191:17:191:23 | replace | 0 | size_type | -| stl.h:191:17:191:23 | replace | 1 | size_type | -| stl.h:191:17:191:23 | replace | 2 | size_type | -| stl.h:191:17:191:23 | replace | 3 | class:0 | -| stl.h:192:13:192:16 | copy | 0 | class:0 * | -| stl.h:192:13:192:16 | copy | 1 | size_type | -| stl.h:192:13:192:16 | copy | 2 | size_type | -| stl.h:194:16:194:21 | substr | 0 | size_type | -| stl.h:194:16:194:21 | substr | 1 | size_type | -| stl.h:195:8:195:11 | swap | 0 | basic_string & | -| stl.h:198:94:198:102 | operator+ | 0 | const basic_string & | -| stl.h:198:94:198:102 | operator+ | 1 | const basic_string & | -| stl.h:199:94:199:102 | operator+ | 0 | const basic_string & | -| stl.h:199:94:199:102 | operator+ | 1 | const func:0 * | -| stl.h:214:33:214:42 | operator>> | 0 | int & | -| stl.h:217:33:217:35 | get | 0 | char_type & | -| stl.h:217:33:217:35 | get | 0 | class:0 & | -| stl.h:218:33:218:35 | get | 0 | char_type * | -| stl.h:218:33:218:35 | get | 0 | class:0 * | -| stl.h:218:33:218:35 | get | 1 | streamsize | -| stl.h:218:33:218:35 | get | 1 | unsigned long | -| stl.h:220:33:220:36 | read | 0 | char_type * | -| stl.h:220:33:220:36 | read | 0 | class:0 * | -| stl.h:220:33:220:36 | read | 1 | streamsize | -| stl.h:220:33:220:36 | read | 1 | unsigned long | -| stl.h:221:14:221:21 | readsome | 0 | char_type * | -| stl.h:221:14:221:21 | readsome | 0 | class:0 * | -| stl.h:221:14:221:21 | readsome | 1 | streamsize | -| stl.h:221:14:221:21 | readsome | 1 | unsigned long | -| stl.h:222:33:222:39 | putback | 0 | char_type | -| stl.h:222:33:222:39 | putback | 0 | class:0 | -| stl.h:225:32:225:38 | getline | 0 | char_type * | -| stl.h:225:32:225:38 | getline | 0 | class:0 * | -| stl.h:225:32:225:38 | getline | 1 | streamsize | -| stl.h:225:32:225:38 | getline | 1 | unsigned long | -| stl.h:226:32:226:38 | getline | 0 | char_type * | -| stl.h:226:32:226:38 | getline | 0 | class:0 * | -| stl.h:226:32:226:38 | getline | 1 | streamsize | -| stl.h:226:32:226:38 | getline | 1 | unsigned long | -| stl.h:226:32:226:38 | getline | 2 | char_type | -| stl.h:226:32:226:38 | getline | 2 | class:0 | -| stl.h:229:68:229:77 | operator>> | 0 | basic_istream & | -| stl.h:229:68:229:77 | operator>> | 1 | func:0 * | -| stl.h:230:85:230:94 | operator>> | 0 | basic_istream & | -| stl.h:230:85:230:94 | operator>> | 1 | basic_string & | -| stl.h:232:84:232:90 | getline | 0 | basic_istream & | -| stl.h:232:84:232:90 | getline | 1 | basic_string & | -| stl.h:232:84:232:90 | getline | 2 | func:0 | -| stl.h:233:84:233:90 | getline | 0 | basic_istream & | -| stl.h:233:84:233:90 | getline | 1 | basic_string & | -| stl.h:240:33:240:42 | operator<< | 0 | int | -| stl.h:242:33:242:35 | put | 0 | char_type | -| stl.h:242:33:242:35 | put | 0 | class:0 | -| stl.h:243:33:243:37 | write | 0 | const char_type * | -| stl.h:243:33:243:37 | write | 0 | const class:0 * | -| stl.h:243:33:243:37 | write | 1 | streamsize | -| stl.h:243:33:243:37 | write | 1 | unsigned long | -| stl.h:247:67:247:76 | operator<< | 0 | basic_ostream & | -| stl.h:247:67:247:76 | operator<< | 1 | const func:0 * | -| stl.h:248:85:248:94 | operator<< | 0 | basic_ostream & | -| stl.h:248:85:248:94 | operator<< | 1 | const basic_string & | -| stl.h:259:12:259:29 | basic_stringstream | 0 | const basic_string & | -| stl.h:263:23:263:31 | operator= | 0 | basic_stringstream && | -| stl.h:265:8:265:11 | swap | 0 | basic_stringstream & | -| stl.h:268:8:268:10 | str | 0 | const basic_string & | -| stl.h:293:12:293:17 | vector | 0 | const class:1 & | -| stl.h:293:12:293:17 | vector | 0 | const class:1 & | -| stl.h:293:12:293:17 | vector | 0 | const class:1 & | -| stl.h:293:12:293:17 | vector | 0 | const class:1 & | -| stl.h:293:12:293:17 | vector | 0 | const class:1 & | -| stl.h:293:12:293:17 | vector | 0 | const class:1 & | -| stl.h:294:12:294:17 | vector | 0 | size_type | -| stl.h:294:12:294:17 | vector | 0 | size_type | -| stl.h:294:12:294:17 | vector | 0 | size_type | -| stl.h:294:12:294:17 | vector | 0 | unsigned int | -| stl.h:294:12:294:17 | vector | 0 | unsigned int | -| stl.h:294:12:294:17 | vector | 0 | unsigned int | -| stl.h:294:12:294:17 | vector | 1 | const class:1 & | -| stl.h:294:12:294:17 | vector | 1 | const class:1 & | -| stl.h:294:12:294:17 | vector | 1 | const class:1 & | -| stl.h:295:3:295:8 | vector | 0 | size_type | -| stl.h:295:3:295:8 | vector | 0 | size_type | -| stl.h:295:3:295:8 | vector | 0 | unsigned int | -| stl.h:295:3:295:8 | vector | 0 | unsigned int | -| stl.h:295:3:295:8 | vector | 1 | const class:0 & | -| stl.h:295:3:295:8 | vector | 1 | const class:0 & | -| stl.h:295:3:295:8 | vector | 2 | const class:1 & | -| stl.h:295:3:295:8 | vector | 2 | const class:1 & | -| stl.h:296:101:296:106 | vector | 0 | func:0 | -| stl.h:296:101:296:106 | vector | 1 | func:0 | -| stl.h:296:101:296:106 | vector | 2 | const class:1 & | -| stl.h:301:11:301:19 | operator= | 0 | const vector & | -| stl.h:302:11:302:19 | operator= | 0 | vector && | -| stl.h:303:106:303:111 | assign | 0 | func:0 | -| stl.h:303:106:303:111 | assign | 1 | func:0 | -| stl.h:306:8:306:13 | assign | 0 | size_type | -| stl.h:306:8:306:13 | assign | 0 | size_type | -| stl.h:306:8:306:13 | assign | 0 | size_type | -| stl.h:306:8:306:13 | assign | 0 | unsigned int | -| stl.h:306:8:306:13 | assign | 0 | unsigned int | -| stl.h:306:8:306:13 | assign | 0 | unsigned int | -| stl.h:306:8:306:13 | assign | 1 | const class:0 & | -| stl.h:306:8:306:13 | assign | 1 | const class:0 & | -| stl.h:306:8:306:13 | assign | 1 | const class:0 & | -| stl.h:315:13:315:22 | operator[] | 0 | size_type | -| stl.h:315:13:315:22 | operator[] | 0 | size_type | -| stl.h:315:13:315:22 | operator[] | 0 | size_type | -| stl.h:315:13:315:22 | operator[] | 0 | size_type | -| stl.h:315:13:315:22 | operator[] | 0 | size_type | -| stl.h:315:13:315:22 | operator[] | 0 | size_type | -| stl.h:315:13:315:22 | operator[] | 0 | unsigned int | -| stl.h:315:13:315:22 | operator[] | 0 | unsigned int | -| stl.h:315:13:315:22 | operator[] | 0 | unsigned int | -| stl.h:315:13:315:22 | operator[] | 0 | unsigned int | -| stl.h:315:13:315:22 | operator[] | 0 | unsigned int | -| stl.h:315:13:315:22 | operator[] | 0 | unsigned int | -| stl.h:318:13:318:14 | at | 0 | size_type | -| stl.h:318:13:318:14 | at | 0 | unsigned int | -| stl.h:327:8:327:16 | push_back | 0 | const class:0 & | -| stl.h:327:8:327:16 | push_back | 0 | const class:0 & | -| stl.h:328:8:328:16 | push_back | 0 | class:0 && | -| stl.h:331:12:331:17 | insert | 0 | const_iterator | -| stl.h:331:12:331:17 | insert | 1 | class:0 && | -| stl.h:333:42:333:47 | insert | 0 | const_iterator | -| stl.h:333:42:333:47 | insert | 0 | const_iterator | -| stl.h:333:42:333:47 | insert | 1 | func:0 | -| stl.h:333:42:333:47 | insert | 1 | func:0 | -| stl.h:333:42:333:47 | insert | 2 | func:0 | -| stl.h:333:42:333:47 | insert | 2 | func:0 | -| stl.h:335:37:335:43 | emplace | 0 | const_iterator | -| stl.h:335:37:335:43 | emplace | 1 | func:0 && | -| stl.h:336:33:336:44 | emplace_back | 0 | func:0 && | -| stl.h:338:8:338:11 | swap | 0 | vector & | -| stl.h:351:12:351:21 | shared_ptr | 0 | class:0 * | -| stl.h:352:3:352:12 | shared_ptr | 0 | const shared_ptr & | -| stl.h:352:3:352:12 | shared_ptr | 0 | const shared_ptr & | -| stl.h:369:12:369:21 | unique_ptr | 0 | class:0 * | -| stl.h:380:52:380:62 | make_unique | 0 | func:1 && | -| stl.h:380:52:380:62 | make_unique | 0 | func:1 && | -| stl.h:380:52:380:62 | make_unique | 0 | func:1 && | -| stl.h:382:52:382:62 | make_shared | 0 | func:1 && | -| stl.h:382:52:382:62 | make_shared | 0 | func:1 && | -| stl.h:382:52:382:62 | make_shared | 0 | func:1 && | -| stl.h:396:3:396:3 | pair | 0 | const class:0 & | -| stl.h:396:3:396:3 | pair | 0 | const class:0 & | -| stl.h:396:3:396:3 | pair | 0 | const class:0 & | -| stl.h:396:3:396:3 | pair | 0 | const class:0 & | -| stl.h:396:3:396:3 | pair | 0 | const class:0 & | -| stl.h:396:3:396:3 | pair | 1 | const class:1 & | -| stl.h:396:3:396:3 | pair | 1 | const class:1 & | -| stl.h:396:3:396:3 | pair | 1 | const class:1 & | -| stl.h:396:3:396:3 | pair | 1 | const class:1 & | -| stl.h:396:3:396:3 | pair | 1 | const class:1 & | -| stl.h:397:30:397:33 | pair | 0 | const pair & | -| stl.h:397:30:397:33 | pair | 0 | const pair & | -| stl.h:397:30:397:33 | pair | 0 | const pair & | -| stl.h:397:30:397:33 | pair | 0 | const pair & | -| stl.h:397:30:397:33 | pair | 0 | const pair & | -| stl.h:397:30:397:33 | pair | 0 | const pair & | -| stl.h:397:30:397:33 | pair | 0 | const pair & | -| stl.h:397:30:397:33 | pair | 0 | const pair & | -| stl.h:397:30:397:33 | pair | 0 | const pair & | -| stl.h:397:30:397:33 | pair | 0 | const pair & | -| stl.h:397:30:397:33 | pair | 0 | const pair & | -| stl.h:397:30:397:33 | pair | 0 | const pair & | -| stl.h:399:8:399:11 | swap | 0 | pair & | -| stl.h:402:72:402:72 | make_pair | 0 | func:0 && | -| stl.h:402:72:402:72 | make_pair | 0 | func:0 && | -| stl.h:402:72:402:72 | make_pair | 0 | func:0 && | -| stl.h:402:72:402:72 | make_pair | 0 | func:0 && | -| stl.h:402:72:402:72 | make_pair | 0 | func:0 && | -| stl.h:402:72:402:72 | make_pair | 0 | func:0 && | -| stl.h:402:72:402:72 | make_pair | 1 | func:1 && | -| stl.h:402:72:402:72 | make_pair | 1 | func:1 && | -| stl.h:402:72:402:72 | make_pair | 1 | func:1 && | -| stl.h:402:72:402:72 | make_pair | 1 | func:1 && | -| stl.h:402:72:402:72 | make_pair | 1 | func:1 && | -| stl.h:402:72:402:72 | make_pair | 1 | func:1 && | -| stl.h:422:3:422:5 | map | 0 | const map & | -| stl.h:426:8:426:16 | operator= | 0 | const map & | -| stl.h:435:6:435:15 | operator[] | 0 | class:0 && | -| stl.h:435:6:435:15 | operator[] | 0 | class:0 && | -| stl.h:435:6:435:15 | operator[] | 0 | key_type && | -| stl.h:435:6:435:15 | operator[] | 0 | key_type && | -| stl.h:436:6:436:7 | at | 0 | const class:0 & | -| stl.h:436:6:436:7 | at | 0 | const key_type & | -| stl.h:439:48:439:54 | emplace | 0 | func:0 && | -| stl.h:439:48:439:54 | emplace | 0 | func:0 && | -| stl.h:440:36:440:47 | emplace_hint | 0 | const_iterator | -| stl.h:440:36:440:47 | emplace_hint | 0 | const_iterator | -| stl.h:440:36:440:47 | emplace_hint | 1 | func:0 && | -| stl.h:440:36:440:47 | emplace_hint | 1 | func:0 && | -| stl.h:443:24:443:29 | insert | 0 | value_type && | -| stl.h:445:12:445:17 | insert | 0 | const_iterator | -| stl.h:445:12:445:17 | insert | 1 | value_type && | -| stl.h:448:48:448:58 | try_emplace | 0 | class:0 && | -| stl.h:448:48:448:58 | try_emplace | 0 | class:0 && | -| stl.h:448:48:448:58 | try_emplace | 0 | key_type && | -| stl.h:448:48:448:58 | try_emplace | 0 | key_type && | -| stl.h:448:48:448:58 | try_emplace | 1 | func:0 && | -| stl.h:448:48:448:58 | try_emplace | 1 | func:0 && | -| stl.h:450:36:450:46 | try_emplace | 0 | const_iterator | -| stl.h:450:36:450:46 | try_emplace | 0 | const_iterator | -| stl.h:450:36:450:46 | try_emplace | 1 | class:0 && | -| stl.h:450:36:450:46 | try_emplace | 1 | class:0 && | -| stl.h:450:36:450:46 | try_emplace | 1 | key_type && | -| stl.h:450:36:450:46 | try_emplace | 1 | key_type && | -| stl.h:450:36:450:46 | try_emplace | 2 | func:0 && | -| stl.h:450:36:450:46 | try_emplace | 2 | func:0 && | -| stl.h:452:42:452:57 | insert_or_assign | 0 | class:0 && | -| stl.h:452:42:452:57 | insert_or_assign | 0 | key_type && | -| stl.h:452:42:452:57 | insert_or_assign | 1 | func:0 && | -| stl.h:454:30:454:45 | insert_or_assign | 0 | const_iterator | -| stl.h:454:30:454:45 | insert_or_assign | 1 | class:0 && | -| stl.h:454:30:454:45 | insert_or_assign | 1 | key_type && | -| stl.h:454:30:454:45 | insert_or_assign | 2 | func:0 && | -| stl.h:456:12:456:16 | erase | 0 | iterator | -| stl.h:459:8:459:11 | swap | 0 | map & | -| stl.h:462:27:462:31 | merge | 0 | map & | -| stl.h:465:12:465:15 | find | 0 | const class:0 & | -| stl.h:465:12:465:15 | find | 0 | const key_type & | -| stl.h:468:12:468:22 | lower_bound | 0 | const class:0 & | -| stl.h:468:12:468:22 | lower_bound | 0 | const key_type & | -| stl.h:470:12:470:22 | upper_bound | 0 | const class:0 & | -| stl.h:470:12:470:22 | upper_bound | 0 | const key_type & | -| stl.h:473:28:473:38 | equal_range | 0 | const class:0 & | -| stl.h:473:28:473:38 | equal_range | 0 | const key_type & | -| stl.h:490:3:490:15 | unordered_map | 0 | const unordered_map & | -| stl.h:490:3:490:15 | unordered_map | 0 | const unordered_map & | -| stl.h:494:18:494:26 | operator= | 0 | const unordered_map & | -| stl.h:503:16:503:25 | operator[] | 0 | class:0 && | -| stl.h:503:16:503:25 | operator[] | 0 | class:0 && | -| stl.h:503:16:503:25 | operator[] | 0 | key_type && | -| stl.h:503:16:503:25 | operator[] | 0 | key_type && | -| stl.h:504:16:504:17 | at | 0 | const class:0 & | -| stl.h:504:16:504:17 | at | 0 | const key_type & | -| stl.h:507:48:507:54 | emplace | 0 | func:0 && | -| stl.h:507:48:507:54 | emplace | 0 | func:0 && | -| stl.h:507:48:507:54 | emplace | 0 | func:0 && | -| stl.h:507:48:507:54 | emplace | 0 | func:0 && | -| stl.h:507:48:507:54 | emplace | 0 | func:0 && | -| stl.h:508:36:508:47 | emplace_hint | 0 | const_iterator | -| stl.h:508:36:508:47 | emplace_hint | 0 | const_iterator | -| stl.h:508:36:508:47 | emplace_hint | 1 | func:0 && | -| stl.h:508:36:508:47 | emplace_hint | 1 | func:0 && | -| stl.h:511:24:511:29 | insert | 0 | value_type && | -| stl.h:513:12:513:17 | insert | 0 | const_iterator | -| stl.h:513:12:513:17 | insert | 1 | value_type && | -| stl.h:516:48:516:58 | try_emplace | 0 | class:0 && | -| stl.h:516:48:516:58 | try_emplace | 0 | class:0 && | -| stl.h:516:48:516:58 | try_emplace | 0 | class:0 && | -| stl.h:516:48:516:58 | try_emplace | 0 | class:0 && | -| stl.h:516:48:516:58 | try_emplace | 0 | class:0 && | -| stl.h:516:48:516:58 | try_emplace | 0 | key_type && | -| stl.h:516:48:516:58 | try_emplace | 0 | key_type && | -| stl.h:516:48:516:58 | try_emplace | 0 | key_type && | -| stl.h:516:48:516:58 | try_emplace | 0 | key_type && | -| stl.h:516:48:516:58 | try_emplace | 0 | key_type && | -| stl.h:516:48:516:58 | try_emplace | 1 | func:0 && | -| stl.h:516:48:516:58 | try_emplace | 1 | func:0 && | -| stl.h:516:48:516:58 | try_emplace | 1 | func:0 && | -| stl.h:516:48:516:58 | try_emplace | 1 | func:0 && | -| stl.h:516:48:516:58 | try_emplace | 1 | func:0 && | -| stl.h:518:36:518:46 | try_emplace | 0 | const_iterator | -| stl.h:518:36:518:46 | try_emplace | 0 | const_iterator | -| stl.h:518:36:518:46 | try_emplace | 1 | class:0 && | -| stl.h:518:36:518:46 | try_emplace | 1 | class:0 && | -| stl.h:518:36:518:46 | try_emplace | 1 | key_type && | -| stl.h:518:36:518:46 | try_emplace | 1 | key_type && | -| stl.h:518:36:518:46 | try_emplace | 2 | func:0 && | -| stl.h:518:36:518:46 | try_emplace | 2 | func:0 && | -| stl.h:520:42:520:57 | insert_or_assign | 0 | class:0 && | -| stl.h:520:42:520:57 | insert_or_assign | 0 | key_type && | -| stl.h:520:42:520:57 | insert_or_assign | 1 | func:0 && | -| stl.h:522:30:522:45 | insert_or_assign | 0 | const_iterator | -| stl.h:522:30:522:45 | insert_or_assign | 1 | class:0 && | -| stl.h:522:30:522:45 | insert_or_assign | 1 | key_type && | -| stl.h:522:30:522:45 | insert_or_assign | 2 | func:0 && | -| stl.h:524:12:524:16 | erase | 0 | iterator | -| stl.h:527:8:527:11 | swap | 0 | unordered_map & | -| stl.h:530:37:530:41 | merge | 0 | unordered_map & | -| stl.h:533:12:533:15 | find | 0 | const class:0 & | -| stl.h:533:12:533:15 | find | 0 | const key_type & | -| stl.h:536:28:536:38 | equal_range | 0 | const class:0 & | -| stl.h:536:28:536:38 | equal_range | 0 | const key_type & | -| stl.h:555:3:555:5 | set | 0 | const set & | -| stl.h:557:33:557:35 | set | 0 | func:0 | -| stl.h:557:33:557:35 | set | 1 | func:0 | -| stl.h:560:8:560:16 | operator= | 0 | const set & | -| stl.h:568:48:568:54 | emplace | 0 | func:0 && | -| stl.h:568:48:568:54 | emplace | 0 | func:0 && | -| stl.h:569:36:569:47 | emplace_hint | 0 | const_iterator | -| stl.h:569:36:569:47 | emplace_hint | 0 | const_iterator | -| stl.h:569:36:569:47 | emplace_hint | 1 | func:0 && | -| stl.h:569:36:569:47 | emplace_hint | 1 | func:0 && | -| stl.h:571:23:571:28 | insert | 0 | class:0 && | -| stl.h:571:23:571:28 | insert | 0 | value_type && | -| stl.h:573:12:573:17 | insert | 0 | const_iterator | -| stl.h:573:12:573:17 | insert | 1 | class:0 && | -| stl.h:573:12:573:17 | insert | 1 | value_type && | -| stl.h:574:38:574:43 | insert | 0 | func:0 | -| stl.h:574:38:574:43 | insert | 1 | func:0 | -| stl.h:576:12:576:16 | erase | 0 | iterator | -| stl.h:579:8:579:11 | swap | 0 | set & | -| stl.h:582:27:582:31 | merge | 0 | set & | -| stl.h:585:12:585:15 | find | 0 | const class:0 & | -| stl.h:585:12:585:15 | find | 0 | const key_type & | -| stl.h:588:12:588:22 | lower_bound | 0 | const class:0 & | -| stl.h:588:12:588:22 | lower_bound | 0 | const key_type & | -| stl.h:590:12:590:22 | upper_bound | 0 | const class:0 & | -| stl.h:590:12:590:22 | upper_bound | 0 | const key_type & | -| stl.h:592:28:592:38 | equal_range | 0 | const class:0 & | -| stl.h:592:28:592:38 | equal_range | 0 | const key_type & | -| stl.h:609:3:609:15 | unordered_set | 0 | const unordered_set & | -| stl.h:611:33:611:45 | unordered_set | 0 | func:0 | -| stl.h:611:33:611:45 | unordered_set | 1 | func:0 | -| stl.h:611:33:611:45 | unordered_set | 2 | size_type | -| stl.h:611:33:611:45 | unordered_set | 2 | unsigned long | -| stl.h:614:18:614:26 | operator= | 0 | const unordered_set & | -| stl.h:622:48:622:54 | emplace | 0 | func:0 && | -| stl.h:622:48:622:54 | emplace | 0 | func:0 && | -| stl.h:623:36:623:47 | emplace_hint | 0 | const_iterator | -| stl.h:623:36:623:47 | emplace_hint | 0 | const_iterator | -| stl.h:623:36:623:47 | emplace_hint | 1 | func:0 && | -| stl.h:623:36:623:47 | emplace_hint | 1 | func:0 && | -| stl.h:625:24:625:29 | insert | 0 | class:0 && | -| stl.h:625:24:625:29 | insert | 0 | value_type && | -| stl.h:627:12:627:17 | insert | 0 | const_iterator | -| stl.h:627:12:627:17 | insert | 1 | class:0 && | -| stl.h:627:12:627:17 | insert | 1 | value_type && | -| stl.h:628:38:628:43 | insert | 0 | func:0 | -| stl.h:628:38:628:43 | insert | 1 | func:0 | -| stl.h:630:12:630:16 | erase | 0 | iterator | -| stl.h:633:8:633:11 | swap | 0 | unordered_set & | -| stl.h:636:37:636:41 | merge | 0 | unordered_set & | -| stl.h:639:12:639:15 | find | 0 | const class:0 & | -| stl.h:639:12:639:15 | find | 0 | const key_type & | -| stl.h:641:28:641:38 | equal_range | 0 | const class:0 & | -| stl.h:641:28:641:38 | equal_range | 0 | const key_type & | -| stl.h:671:21:671:39 | basic_format_string | 0 | const func:0 & | -| stl.h:671:21:671:39 | basic_format_string | 0 | const func:0 & | -| stl.h:678:33:678:38 | format | 0 | format_string | -| stl.h:678:33:678:38 | format | 0 | format_string | -| stl.h:678:33:678:38 | format | 1 | func:0 && | -| stl.h:678:33:678:38 | format | 1 | func:0 && | -| stl.h:683:6:683:48 | same_signature_as_format_but_different_name | 0 | format_string | -| stl.h:683:6:683:48 | same_signature_as_format_but_different_name | 1 | func:0 && | -| stl.h:687:8:687:8 | operator= | 0 | const thread & | -| stl.h:687:8:687:8 | thread | 0 | const thread & | -| stl.h:690:12:690:17 | thread | 0 | func:0 && | -| stl.h:690:12:690:17 | thread | 0 | func:0 && | -| stl.h:690:12:690:17 | thread | 0 | func:0 && | -| stl.h:690:12:690:17 | thread | 0 | func:0 && | -| stl.h:690:12:690:17 | thread | 1 | func:1 && | -| stl.h:690:12:690:17 | thread | 1 | func:1 && | -| stl.h:690:12:690:17 | thread | 1 | func:1 && | -| stl.h:690:12:690:17 | thread | 1 | func:1 && | +| stl.h:5:34:5:40 | forward | 0 | remove_reference_t & | +| stl.h:5:34:5:40 | forward | 0 | remove_reference_t & | +| stl.h:5:34:5:40 | forward | 0 | remove_reference_t & | +| stl.h:5:34:5:40 | forward | 0 | remove_reference_t & | +| stl.h:5:34:5:40 | forward | 0 | type & | +| stl.h:5:34:5:40 | forward | 0 | type & | +| stl.h:5:34:5:40 | forward | 0 | type & | +| stl.h:5:34:5:40 | forward | 0 | type & | +| stl.h:25:3:25:10 | iterator | 0 | const iterator & | +| stl.h:25:3:25:10 | iterator | 0 | const iterator & | +| stl.h:25:3:25:10 | iterator | 0 | const iterator & | +| stl.h:25:3:25:10 | iterator | 0 | const iterator & | +| stl.h:25:3:25:10 | iterator | 0 | const iterator & | +| stl.h:25:3:25:10 | iterator | 0 | const iterator & | +| stl.h:25:3:25:10 | iterator | 0 | const iterator & | +| stl.h:25:3:25:10 | iterator | 0 | const iterator & | +| stl.h:28:12:28:21 | operator++ | 0 | int | +| stl.h:28:12:28:21 | operator++ | 0 | int | +| stl.h:28:12:28:21 | operator++ | 0 | int | +| stl.h:28:12:28:21 | operator++ | 0 | int | +| stl.h:28:12:28:21 | operator++ | 0 | int | +| stl.h:30:12:30:21 | operator-- | 0 | int | +| stl.h:32:8:32:17 | operator!= | 0 | iterator | +| stl.h:32:8:32:17 | operator!= | 0 | iterator | +| stl.h:32:8:32:17 | operator!= | 0 | iterator | +| stl.h:32:8:32:17 | operator!= | 0 | iterator | +| stl.h:32:8:32:17 | operator!= | 0 | iterator | +| stl.h:32:8:32:17 | operator!= | 0 | iterator | +| stl.h:35:12:35:20 | operator+ | 0 | int | +| stl.h:36:12:36:20 | operator- | 0 | int | +| stl.h:37:13:37:22 | operator+= | 0 | int | +| stl.h:37:13:37:22 | operator+= | 0 | int | +| stl.h:38:13:38:22 | operator-= | 0 | int | +| stl.h:40:18:40:27 | operator[] | 0 | int | +| stl.h:43:9:43:9 | operator= | 0 | const input_iterator_tag & | +| stl.h:43:9:43:9 | operator= | 0 | input_iterator_tag && | +| stl.h:44:9:44:9 | operator= | 0 | const forward_iterator_tag & | +| stl.h:44:9:44:9 | operator= | 0 | forward_iterator_tag && | +| stl.h:45:9:45:9 | operator= | 0 | bidirectional_iterator_tag && | +| stl.h:45:9:45:9 | operator= | 0 | const bidirectional_iterator_tag & | +| stl.h:46:9:46:9 | operator= | 0 | const random_access_iterator_tag & | +| stl.h:46:9:46:9 | operator= | 0 | random_access_iterator_tag && | +| stl.h:48:9:48:9 | operator= | 0 | const output_iterator_tag & | +| stl.h:48:9:48:9 | operator= | 0 | output_iterator_tag && | +| stl.h:62:22:62:41 | back_insert_iterator | 0 | class:0 & | +| stl.h:62:22:62:41 | back_insert_iterator | 0 | class:0 & | +| stl.h:64:25:64:33 | operator= | 0 | value_type && | +| stl.h:64:25:64:33 | operator= | 0 | value_type && | +| stl.h:67:24:67:33 | operator++ | 0 | int | +| stl.h:67:24:67:33 | operator++ | 0 | int | +| stl.h:71:44:71:44 | back_inserter | 0 | func:0 & | +| stl.h:71:44:71:44 | back_inserter | 0 | func:0 & | +| stl.h:142:12:142:23 | basic_string | 0 | const class:2 & | +| stl.h:143:3:143:14 | basic_string | 0 | const class:0 * | +| stl.h:143:3:143:14 | basic_string | 1 | const class:2 & | +| stl.h:144:33:144:44 | basic_string | 0 | func:0 | +| stl.h:144:33:144:44 | basic_string | 1 | func:0 | +| stl.h:144:33:144:44 | basic_string | 2 | const class:2 & | +| stl.h:147:12:147:23 | basic_string | 0 | const func:0 & | +| stl.h:147:12:147:23 | basic_string | 1 | const class:2 & | +| stl.h:150:3:150:14 | basic_string | 0 | const func:0 & | +| stl.h:150:3:150:14 | basic_string | 1 | size_type | +| stl.h:150:3:150:14 | basic_string | 2 | size_type | +| stl.h:150:3:150:14 | basic_string | 3 | const class:2 & | +| stl.h:167:8:167:16 | push_back | 0 | class:0 | +| stl.h:175:13:175:22 | operator[] | 0 | size_type | +| stl.h:177:13:177:14 | at | 0 | size_type | +| stl.h:178:35:178:44 | operator+= | 0 | const func:0 & | +| stl.h:178:35:178:44 | operator+= | 0 | const func:0 & | +| stl.h:179:17:179:26 | operator+= | 0 | const class:0 * | +| stl.h:180:17:180:22 | append | 0 | const basic_string & | +| stl.h:183:174:183:179 | append | 0 | const func:0 & | +| stl.h:183:174:183:179 | append | 1 | size_type | +| stl.h:183:174:183:179 | append | 2 | size_type | +| stl.h:185:17:185:22 | append | 0 | const class:0 * | +| stl.h:186:17:186:22 | append | 0 | size_type | +| stl.h:186:17:186:22 | append | 1 | class:0 | +| stl.h:187:47:187:52 | append | 0 | func:0 | +| stl.h:187:47:187:52 | append | 1 | func:0 | +| stl.h:188:17:188:22 | assign | 0 | const basic_string & | +| stl.h:191:17:191:22 | assign | 0 | const func:0 & | +| stl.h:195:17:195:22 | assign | 0 | size_type | +| stl.h:195:17:195:22 | assign | 1 | class:0 | +| stl.h:196:47:196:52 | assign | 0 | func:0 | +| stl.h:196:47:196:52 | assign | 1 | func:0 | +| stl.h:197:17:197:22 | insert | 0 | size_type | +| stl.h:197:17:197:22 | insert | 1 | const basic_string & | +| stl.h:200:17:200:22 | insert | 0 | size_type | +| stl.h:200:17:200:22 | insert | 1 | const func:0 & | +| stl.h:203:17:203:22 | insert | 0 | size_type | +| stl.h:203:17:203:22 | insert | 1 | size_type | +| stl.h:203:17:203:22 | insert | 2 | class:0 | +| stl.h:204:17:204:22 | insert | 0 | size_type | +| stl.h:204:17:204:22 | insert | 1 | const class:0 * | +| stl.h:205:12:205:17 | insert | 0 | const_iterator | +| stl.h:205:12:205:17 | insert | 1 | size_type | +| stl.h:205:12:205:17 | insert | 2 | class:0 | +| stl.h:206:42:206:47 | insert | 0 | const_iterator | +| stl.h:206:42:206:47 | insert | 1 | func:0 | +| stl.h:206:42:206:47 | insert | 2 | func:0 | +| stl.h:207:17:207:23 | replace | 0 | size_type | +| stl.h:207:17:207:23 | replace | 1 | size_type | +| stl.h:207:17:207:23 | replace | 2 | const basic_string & | +| stl.h:210:17:210:23 | replace | 0 | size_type | +| stl.h:210:17:210:23 | replace | 1 | size_type | +| stl.h:210:17:210:23 | replace | 2 | const func:0 & | +| stl.h:216:17:216:23 | replace | 0 | size_type | +| stl.h:216:17:216:23 | replace | 1 | size_type | +| stl.h:216:17:216:23 | replace | 2 | size_type | +| stl.h:216:17:216:23 | replace | 3 | class:0 | +| stl.h:217:13:217:16 | copy | 0 | class:0 * | +| stl.h:217:13:217:16 | copy | 1 | size_type | +| stl.h:217:13:217:16 | copy | 2 | size_type | +| stl.h:219:16:219:21 | substr | 0 | size_type | +| stl.h:219:16:219:21 | substr | 1 | size_type | +| stl.h:220:8:220:11 | swap | 0 | basic_string & | +| stl.h:223:94:223:102 | operator+ | 0 | const basic_string & | +| stl.h:223:94:223:102 | operator+ | 1 | const basic_string & | +| stl.h:224:94:224:102 | operator+ | 0 | const basic_string & | +| stl.h:224:94:224:102 | operator+ | 1 | const func:0 * | +| stl.h:230:41:230:49 | operator+ | 0 | func:0 | +| stl.h:230:41:230:49 | operator+ | 1 | basic_string && | +| stl.h:245:33:245:42 | operator>> | 0 | int & | +| stl.h:248:33:248:35 | get | 0 | char_type & | +| stl.h:248:33:248:35 | get | 0 | class:0 & | +| stl.h:249:33:249:35 | get | 0 | char_type * | +| stl.h:249:33:249:35 | get | 0 | class:0 * | +| stl.h:249:33:249:35 | get | 1 | decltype(...) | +| stl.h:249:33:249:35 | get | 1 | streamsize | +| stl.h:251:33:251:36 | read | 0 | char_type * | +| stl.h:251:33:251:36 | read | 0 | class:0 * | +| stl.h:251:33:251:36 | read | 1 | decltype(...) | +| stl.h:251:33:251:36 | read | 1 | streamsize | +| stl.h:252:14:252:21 | readsome | 0 | char_type * | +| stl.h:252:14:252:21 | readsome | 0 | class:0 * | +| stl.h:252:14:252:21 | readsome | 1 | decltype(...) | +| stl.h:252:14:252:21 | readsome | 1 | streamsize | +| stl.h:253:33:253:39 | putback | 0 | char_type | +| stl.h:253:33:253:39 | putback | 0 | class:0 | +| stl.h:256:32:256:38 | getline | 0 | char_type * | +| stl.h:256:32:256:38 | getline | 0 | class:0 * | +| stl.h:256:32:256:38 | getline | 1 | decltype(...) | +| stl.h:256:32:256:38 | getline | 1 | streamsize | +| stl.h:257:32:257:38 | getline | 0 | char_type * | +| stl.h:257:32:257:38 | getline | 0 | class:0 * | +| stl.h:257:32:257:38 | getline | 1 | decltype(...) | +| stl.h:257:32:257:38 | getline | 1 | streamsize | +| stl.h:257:32:257:38 | getline | 2 | char_type | +| stl.h:257:32:257:38 | getline | 2 | class:0 | +| stl.h:260:68:260:77 | operator>> | 0 | basic_istream & | +| stl.h:260:68:260:77 | operator>> | 1 | func:0 * | +| stl.h:261:85:261:94 | operator>> | 0 | basic_istream & | +| stl.h:261:85:261:94 | operator>> | 1 | basic_string & | +| stl.h:263:84:263:90 | getline | 0 | basic_istream & | +| stl.h:263:84:263:90 | getline | 1 | basic_string & | +| stl.h:263:84:263:90 | getline | 2 | func:0 | +| stl.h:264:84:264:90 | getline | 0 | basic_istream & | +| stl.h:264:84:264:90 | getline | 1 | basic_string & | +| stl.h:271:33:271:42 | operator<< | 0 | int | +| stl.h:273:33:273:35 | put | 0 | char_type | +| stl.h:273:33:273:35 | put | 0 | class:0 | +| stl.h:274:33:274:37 | write | 0 | const char_type * | +| stl.h:274:33:274:37 | write | 0 | const class:0 * | +| stl.h:274:33:274:37 | write | 1 | decltype(...) | +| stl.h:274:33:274:37 | write | 1 | streamsize | +| stl.h:278:67:278:76 | operator<< | 0 | basic_ostream & | +| stl.h:278:67:278:76 | operator<< | 1 | const func:0 * | +| stl.h:279:85:279:94 | operator<< | 0 | basic_ostream & | +| stl.h:279:85:279:94 | operator<< | 1 | const basic_string & | +| stl.h:290:12:290:29 | basic_stringstream | 0 | const basic_string & | +| stl.h:294:23:294:31 | operator= | 0 | basic_stringstream && | +| stl.h:296:8:296:11 | swap | 0 | basic_stringstream & | +| stl.h:299:8:299:10 | str | 0 | const basic_string & | +| stl.h:327:12:327:17 | vector | 0 | size_type | +| stl.h:327:12:327:17 | vector | 0 | size_type | +| stl.h:327:12:327:17 | vector | 0 | size_type | +| stl.h:327:12:327:17 | vector | 0 | unsigned int | +| stl.h:327:12:327:17 | vector | 0 | unsigned int | +| stl.h:327:12:327:17 | vector | 0 | unsigned int | +| stl.h:327:12:327:17 | vector | 1 | const class:1 & | +| stl.h:327:12:327:17 | vector | 1 | const class:1 & | +| stl.h:327:12:327:17 | vector | 1 | const class:1 & | +| stl.h:328:3:328:8 | vector | 0 | size_type | +| stl.h:328:3:328:8 | vector | 0 | size_type | +| stl.h:328:3:328:8 | vector | 0 | unsigned int | +| stl.h:328:3:328:8 | vector | 0 | unsigned int | +| stl.h:328:3:328:8 | vector | 1 | const class:0 & | +| stl.h:328:3:328:8 | vector | 1 | const class:0 & | +| stl.h:328:3:328:8 | vector | 2 | const class:1 & | +| stl.h:328:3:328:8 | vector | 2 | const class:1 & | +| stl.h:329:101:329:106 | vector | 0 | func:0 | +| stl.h:329:101:329:106 | vector | 1 | func:0 | +| stl.h:329:101:329:106 | vector | 2 | const class:1 & | +| stl.h:334:11:334:19 | operator= | 0 | const vector & | +| stl.h:335:11:335:19 | operator= | 0 | vector && | +| stl.h:336:106:336:111 | assign | 0 | func:0 | +| stl.h:336:106:336:111 | assign | 1 | func:0 | +| stl.h:339:8:339:13 | assign | 0 | size_type | +| stl.h:339:8:339:13 | assign | 0 | size_type | +| stl.h:339:8:339:13 | assign | 0 | size_type | +| stl.h:339:8:339:13 | assign | 0 | unsigned int | +| stl.h:339:8:339:13 | assign | 0 | unsigned int | +| stl.h:339:8:339:13 | assign | 0 | unsigned int | +| stl.h:339:8:339:13 | assign | 1 | const class:0 & | +| stl.h:339:8:339:13 | assign | 1 | const class:0 & | +| stl.h:339:8:339:13 | assign | 1 | const class:0 & | +| stl.h:348:13:348:22 | operator[] | 0 | size_type | +| stl.h:348:13:348:22 | operator[] | 0 | size_type | +| stl.h:348:13:348:22 | operator[] | 0 | size_type | +| stl.h:348:13:348:22 | operator[] | 0 | size_type | +| stl.h:348:13:348:22 | operator[] | 0 | size_type | +| stl.h:348:13:348:22 | operator[] | 0 | size_type | +| stl.h:348:13:348:22 | operator[] | 0 | unsigned int | +| stl.h:348:13:348:22 | operator[] | 0 | unsigned int | +| stl.h:348:13:348:22 | operator[] | 0 | unsigned int | +| stl.h:348:13:348:22 | operator[] | 0 | unsigned int | +| stl.h:348:13:348:22 | operator[] | 0 | unsigned int | +| stl.h:348:13:348:22 | operator[] | 0 | unsigned int | +| stl.h:351:13:351:14 | at | 0 | size_type | +| stl.h:351:13:351:14 | at | 0 | unsigned int | +| stl.h:360:8:360:16 | push_back | 0 | const class:0 & | +| stl.h:360:8:360:16 | push_back | 0 | const class:0 & | +| stl.h:361:8:361:16 | push_back | 0 | class:0 && | +| stl.h:361:8:361:16 | push_back | 0 | class:0 && | +| stl.h:364:12:364:17 | insert | 0 | const_iterator | +| stl.h:364:12:364:17 | insert | 1 | class:0 && | +| stl.h:366:42:366:47 | insert | 0 | const_iterator | +| stl.h:366:42:366:47 | insert | 0 | const_iterator | +| stl.h:366:42:366:47 | insert | 1 | func:0 | +| stl.h:366:42:366:47 | insert | 1 | func:0 | +| stl.h:366:42:366:47 | insert | 2 | func:0 | +| stl.h:366:42:366:47 | insert | 2 | func:0 | +| stl.h:368:37:368:43 | emplace | 0 | const_iterator | +| stl.h:368:37:368:43 | emplace | 1 | func:0 && | +| stl.h:369:33:369:44 | emplace_back | 0 | func:0 && | +| stl.h:371:8:371:11 | swap | 0 | vector & | +| stl.h:384:12:384:21 | shared_ptr | 0 | class:0 * | +| stl.h:385:3:385:12 | shared_ptr | 0 | const shared_ptr & | +| stl.h:385:3:385:12 | shared_ptr | 0 | const shared_ptr & | +| stl.h:402:12:402:21 | unique_ptr | 0 | class:0 * | +| stl.h:413:52:413:62 | make_unique | 0 | func:1 && | +| stl.h:413:52:413:62 | make_unique | 0 | func:1 && | +| stl.h:413:52:413:62 | make_unique | 0 | func:1 && | +| stl.h:415:52:415:62 | make_shared | 0 | func:1 && | +| stl.h:415:52:415:62 | make_shared | 0 | func:1 && | +| stl.h:415:52:415:62 | make_shared | 0 | func:1 && | +| stl.h:429:3:429:3 | pair | 0 | const class:0 & | +| stl.h:429:3:429:3 | pair | 0 | const class:0 & | +| stl.h:429:3:429:3 | pair | 0 | const class:0 & | +| stl.h:429:3:429:3 | pair | 0 | const class:0 & | +| stl.h:429:3:429:3 | pair | 0 | const class:0 & | +| stl.h:429:3:429:3 | pair | 0 | const class:0 & | +| stl.h:429:3:429:3 | pair | 1 | const class:1 & | +| stl.h:429:3:429:3 | pair | 1 | const class:1 & | +| stl.h:429:3:429:3 | pair | 1 | const class:1 & | +| stl.h:429:3:429:3 | pair | 1 | const class:1 & | +| stl.h:429:3:429:3 | pair | 1 | const class:1 & | +| stl.h:429:3:429:3 | pair | 1 | const class:1 & | +| stl.h:430:30:430:33 | pair | 0 | const pair & | +| stl.h:430:30:430:33 | pair | 0 | const pair & | +| stl.h:430:30:430:33 | pair | 0 | const pair & | +| stl.h:430:30:430:33 | pair | 0 | const pair & | +| stl.h:432:8:432:11 | swap | 0 | pair & | +| stl.h:435:72:435:72 | make_pair | 0 | func:0 && | +| stl.h:435:72:435:72 | make_pair | 0 | func:0 && | +| stl.h:435:72:435:72 | make_pair | 0 | func:0 && | +| stl.h:435:72:435:72 | make_pair | 0 | func:0 && | +| stl.h:435:72:435:72 | make_pair | 0 | func:0 && | +| stl.h:435:72:435:72 | make_pair | 0 | func:0 && | +| stl.h:435:72:435:72 | make_pair | 1 | func:1 && | +| stl.h:435:72:435:72 | make_pair | 1 | func:1 && | +| stl.h:435:72:435:72 | make_pair | 1 | func:1 && | +| stl.h:435:72:435:72 | make_pair | 1 | func:1 && | +| stl.h:435:72:435:72 | make_pair | 1 | func:1 && | +| stl.h:435:72:435:72 | make_pair | 1 | func:1 && | +| stl.h:460:3:460:5 | map | 0 | const map & | +| stl.h:464:8:464:16 | operator= | 0 | const map & | +| stl.h:473:6:473:15 | operator[] | 0 | class:0 && | +| stl.h:473:6:473:15 | operator[] | 0 | class:0 && | +| stl.h:473:6:473:15 | operator[] | 0 | key_type && | +| stl.h:473:6:473:15 | operator[] | 0 | key_type && | +| stl.h:475:6:475:7 | at | 0 | const class:0 & | +| stl.h:475:6:475:7 | at | 0 | const key_type & | +| stl.h:478:48:478:54 | emplace | 0 | func:0 && | +| stl.h:478:48:478:54 | emplace | 0 | func:0 && | +| stl.h:479:36:479:47 | emplace_hint | 0 | const_iterator | +| stl.h:479:36:479:47 | emplace_hint | 0 | const_iterator | +| stl.h:479:36:479:47 | emplace_hint | 1 | func:0 && | +| stl.h:479:36:479:47 | emplace_hint | 1 | func:0 && | +| stl.h:483:42:483:47 | insert | 0 | func:0 && | +| stl.h:483:42:483:47 | insert | 0 | func:0 && | +| stl.h:483:42:483:47 | insert | 0 | func:0 && | +| stl.h:486:30:486:35 | insert | 0 | const_iterator | +| stl.h:486:30:486:35 | insert | 1 | func:0 && | +| stl.h:488:48:488:58 | try_emplace | 0 | class:0 && | +| stl.h:488:48:488:58 | try_emplace | 0 | class:0 && | +| stl.h:488:48:488:58 | try_emplace | 0 | key_type && | +| stl.h:488:48:488:58 | try_emplace | 0 | key_type && | +| stl.h:488:48:488:58 | try_emplace | 1 | func:0 && | +| stl.h:488:48:488:58 | try_emplace | 1 | func:0 && | +| stl.h:490:36:490:46 | try_emplace | 0 | const_iterator | +| stl.h:490:36:490:46 | try_emplace | 0 | const_iterator | +| stl.h:490:36:490:46 | try_emplace | 1 | class:0 && | +| stl.h:490:36:490:46 | try_emplace | 1 | class:0 && | +| stl.h:490:36:490:46 | try_emplace | 1 | key_type && | +| stl.h:490:36:490:46 | try_emplace | 1 | key_type && | +| stl.h:490:36:490:46 | try_emplace | 2 | func:0 && | +| stl.h:490:36:490:46 | try_emplace | 2 | func:0 && | +| stl.h:492:42:492:57 | insert_or_assign | 0 | class:0 && | +| stl.h:492:42:492:57 | insert_or_assign | 0 | key_type && | +| stl.h:492:42:492:57 | insert_or_assign | 1 | func:0 && | +| stl.h:494:30:494:45 | insert_or_assign | 0 | const_iterator | +| stl.h:494:30:494:45 | insert_or_assign | 1 | class:0 && | +| stl.h:494:30:494:45 | insert_or_assign | 1 | key_type && | +| stl.h:494:30:494:45 | insert_or_assign | 2 | func:0 && | +| stl.h:496:12:496:16 | erase | 0 | iterator | +| stl.h:499:8:499:11 | swap | 0 | map & | +| stl.h:502:27:502:31 | merge | 0 | map & | +| stl.h:505:12:505:15 | find | 0 | const class:0 & | +| stl.h:505:12:505:15 | find | 0 | const key_type & | +| stl.h:508:12:508:22 | lower_bound | 0 | const class:0 & | +| stl.h:508:12:508:22 | lower_bound | 0 | const key_type & | +| stl.h:510:12:510:22 | upper_bound | 0 | const class:0 & | +| stl.h:510:12:510:22 | upper_bound | 0 | const key_type & | +| stl.h:513:28:513:38 | equal_range | 0 | const class:0 & | +| stl.h:513:28:513:38 | equal_range | 0 | const key_type & | +| stl.h:530:3:530:15 | unordered_map | 0 | const unordered_map & | +| stl.h:530:3:530:15 | unordered_map | 0 | const unordered_map & | +| stl.h:534:18:534:26 | operator= | 0 | const unordered_map & | +| stl.h:543:16:543:25 | operator[] | 0 | class:0 && | +| stl.h:543:16:543:25 | operator[] | 0 | class:0 && | +| stl.h:543:16:543:25 | operator[] | 0 | key_type && | +| stl.h:543:16:543:25 | operator[] | 0 | key_type && | +| stl.h:544:16:544:17 | at | 0 | const class:0 & | +| stl.h:544:16:544:17 | at | 0 | const key_type & | +| stl.h:547:48:547:54 | emplace | 0 | func:0 && | +| stl.h:547:48:547:54 | emplace | 0 | func:0 && | +| stl.h:547:48:547:54 | emplace | 0 | func:0 && | +| stl.h:547:48:547:54 | emplace | 0 | func:0 && | +| stl.h:547:48:547:54 | emplace | 0 | func:0 && | +| stl.h:548:36:548:47 | emplace_hint | 0 | const_iterator | +| stl.h:548:36:548:47 | emplace_hint | 0 | const_iterator | +| stl.h:548:36:548:47 | emplace_hint | 1 | func:0 && | +| stl.h:548:36:548:47 | emplace_hint | 1 | func:0 && | +| stl.h:551:24:551:29 | insert | 0 | value_type && | +| stl.h:553:12:553:17 | insert | 0 | const_iterator | +| stl.h:553:12:553:17 | insert | 1 | value_type && | +| stl.h:556:48:556:58 | try_emplace | 0 | class:0 && | +| stl.h:556:48:556:58 | try_emplace | 0 | class:0 && | +| stl.h:556:48:556:58 | try_emplace | 0 | class:0 && | +| stl.h:556:48:556:58 | try_emplace | 0 | key_type && | +| stl.h:556:48:556:58 | try_emplace | 0 | key_type && | +| stl.h:556:48:556:58 | try_emplace | 0 | key_type && | +| stl.h:556:48:556:58 | try_emplace | 1 | func:0 && | +| stl.h:556:48:556:58 | try_emplace | 1 | func:0 && | +| stl.h:556:48:556:58 | try_emplace | 1 | func:0 && | +| stl.h:558:36:558:46 | try_emplace | 0 | const_iterator | +| stl.h:558:36:558:46 | try_emplace | 0 | const_iterator | +| stl.h:558:36:558:46 | try_emplace | 1 | class:0 && | +| stl.h:558:36:558:46 | try_emplace | 1 | class:0 && | +| stl.h:558:36:558:46 | try_emplace | 1 | key_type && | +| stl.h:558:36:558:46 | try_emplace | 1 | key_type && | +| stl.h:558:36:558:46 | try_emplace | 2 | func:0 && | +| stl.h:558:36:558:46 | try_emplace | 2 | func:0 && | +| stl.h:560:42:560:57 | insert_or_assign | 0 | class:0 && | +| stl.h:560:42:560:57 | insert_or_assign | 0 | key_type && | +| stl.h:560:42:560:57 | insert_or_assign | 1 | func:0 && | +| stl.h:562:30:562:45 | insert_or_assign | 0 | const_iterator | +| stl.h:562:30:562:45 | insert_or_assign | 1 | class:0 && | +| stl.h:562:30:562:45 | insert_or_assign | 1 | key_type && | +| stl.h:562:30:562:45 | insert_or_assign | 2 | func:0 && | +| stl.h:564:12:564:16 | erase | 0 | iterator | +| stl.h:567:8:567:11 | swap | 0 | unordered_map & | +| stl.h:570:37:570:41 | merge | 0 | unordered_map & | +| stl.h:573:12:573:15 | find | 0 | const class:0 & | +| stl.h:573:12:573:15 | find | 0 | const key_type & | +| stl.h:576:28:576:38 | equal_range | 0 | const class:0 & | +| stl.h:576:28:576:38 | equal_range | 0 | const key_type & | +| stl.h:595:3:595:5 | set | 0 | const set & | +| stl.h:597:33:597:35 | set | 0 | func:0 | +| stl.h:597:33:597:35 | set | 1 | func:0 | +| stl.h:600:8:600:16 | operator= | 0 | const set & | +| stl.h:608:48:608:54 | emplace | 0 | func:0 && | +| stl.h:608:48:608:54 | emplace | 0 | func:0 && | +| stl.h:609:36:609:47 | emplace_hint | 0 | const_iterator | +| stl.h:609:36:609:47 | emplace_hint | 0 | const_iterator | +| stl.h:609:36:609:47 | emplace_hint | 1 | func:0 && | +| stl.h:609:36:609:47 | emplace_hint | 1 | func:0 && | +| stl.h:611:23:611:28 | insert | 0 | class:0 && | +| stl.h:611:23:611:28 | insert | 0 | value_type && | +| stl.h:613:12:613:17 | insert | 0 | const_iterator | +| stl.h:613:12:613:17 | insert | 1 | class:0 && | +| stl.h:613:12:613:17 | insert | 1 | value_type && | +| stl.h:614:38:614:43 | insert | 0 | func:0 | +| stl.h:614:38:614:43 | insert | 1 | func:0 | +| stl.h:616:12:616:16 | erase | 0 | iterator | +| stl.h:619:8:619:11 | swap | 0 | set & | +| stl.h:622:27:622:31 | merge | 0 | set & | +| stl.h:625:12:625:15 | find | 0 | const class:0 & | +| stl.h:625:12:625:15 | find | 0 | const key_type & | +| stl.h:628:12:628:22 | lower_bound | 0 | const class:0 & | +| stl.h:628:12:628:22 | lower_bound | 0 | const key_type & | +| stl.h:630:12:630:22 | upper_bound | 0 | const class:0 & | +| stl.h:630:12:630:22 | upper_bound | 0 | const key_type & | +| stl.h:632:28:632:38 | equal_range | 0 | const class:0 & | +| stl.h:632:28:632:38 | equal_range | 0 | const key_type & | +| stl.h:649:3:649:15 | unordered_set | 0 | const unordered_set & | +| stl.h:651:33:651:45 | unordered_set | 0 | func:0 | +| stl.h:651:33:651:45 | unordered_set | 1 | func:0 | +| stl.h:651:33:651:45 | unordered_set | 2 | decltype(...) | +| stl.h:651:33:651:45 | unordered_set | 2 | size_type | +| stl.h:654:18:654:26 | operator= | 0 | const unordered_set & | +| stl.h:662:48:662:54 | emplace | 0 | func:0 && | +| stl.h:662:48:662:54 | emplace | 0 | func:0 && | +| stl.h:663:36:663:47 | emplace_hint | 0 | const_iterator | +| stl.h:663:36:663:47 | emplace_hint | 0 | const_iterator | +| stl.h:663:36:663:47 | emplace_hint | 1 | func:0 && | +| stl.h:663:36:663:47 | emplace_hint | 1 | func:0 && | +| stl.h:665:24:665:29 | insert | 0 | class:0 && | +| stl.h:665:24:665:29 | insert | 0 | value_type && | +| stl.h:667:12:667:17 | insert | 0 | const_iterator | +| stl.h:667:12:667:17 | insert | 1 | class:0 && | +| stl.h:667:12:667:17 | insert | 1 | value_type && | +| stl.h:668:38:668:43 | insert | 0 | func:0 | +| stl.h:668:38:668:43 | insert | 1 | func:0 | +| stl.h:670:12:670:16 | erase | 0 | iterator | +| stl.h:673:8:673:11 | swap | 0 | unordered_set & | +| stl.h:676:37:676:41 | merge | 0 | unordered_set & | +| stl.h:679:12:679:15 | find | 0 | const class:0 & | +| stl.h:679:12:679:15 | find | 0 | const key_type & | +| stl.h:681:28:681:38 | equal_range | 0 | const class:0 & | +| stl.h:681:28:681:38 | equal_range | 0 | const key_type & | +| stl.h:696:3:696:19 | basic_string_view | 0 | const basic_string_view & | +| stl.h:698:3:698:19 | basic_string_view | 0 | const class:0 * | +| stl.h:699:33:699:49 | basic_string_view | 0 | func:0 | +| stl.h:699:33:699:49 | basic_string_view | 0 | func:0 | +| stl.h:699:33:699:49 | basic_string_view | 0 | func:0 | +| stl.h:699:33:699:49 | basic_string_view | 0 | func:0 | +| stl.h:699:33:699:49 | basic_string_view | 1 | func:1 | +| stl.h:699:33:699:49 | basic_string_view | 1 | func:1 | +| stl.h:699:33:699:49 | basic_string_view | 1 | func:1 | +| stl.h:699:33:699:49 | basic_string_view | 1 | func:1 | +| stl.h:701:12:701:28 | basic_string_view | 0 | func:0 && | +| stl.h:701:12:701:28 | basic_string_view | 0 | func:0 && | +| stl.h:702:22:702:30 | operator= | 0 | const basic_string_view & | +| stl.h:708:16:708:25 | operator[] | 0 | decltype(...) | +| stl.h:708:16:708:25 | operator[] | 0 | size_type | +| stl.h:709:16:709:17 | at | 0 | decltype(...) | +| stl.h:709:16:709:17 | at | 0 | size_type | +| stl.h:713:8:713:20 | remove_prefix | 0 | decltype(...) | +| stl.h:713:8:713:20 | remove_prefix | 0 | size_type | +| stl.h:714:8:714:20 | remove_suffix | 0 | decltype(...) | +| stl.h:714:8:714:20 | remove_suffix | 0 | size_type | +| stl.h:715:8:715:11 | swap | 0 | basic_string_view & | +| stl.h:716:13:716:16 | copy | 0 | class:0 * | +| stl.h:716:13:716:16 | copy | 1 | decltype(...) | +| stl.h:716:13:716:16 | copy | 1 | size_type | +| stl.h:716:13:716:16 | copy | 2 | decltype(...) | +| stl.h:716:13:716:16 | copy | 2 | size_type | +| stl.h:717:21:717:26 | substr | 0 | decltype(...) | +| stl.h:717:21:717:26 | substr | 0 | size_type | +| stl.h:717:21:717:26 | substr | 1 | decltype(...) | +| stl.h:717:21:717:26 | substr | 1 | size_type | +| stl.h:718:21:718:27 | subview | 0 | decltype(...) | +| stl.h:718:21:718:27 | subview | 0 | size_type | +| stl.h:718:21:718:27 | subview | 1 | decltype(...) | +| stl.h:718:21:718:27 | subview | 1 | size_type | +| stl.h:740:21:740:39 | basic_format_string | 0 | const func:0 & | +| stl.h:740:21:740:39 | basic_format_string | 0 | const func:0 & | +| stl.h:747:33:747:38 | format | 0 | format_string | +| stl.h:747:33:747:38 | format | 0 | format_string | +| stl.h:747:33:747:38 | format | 1 | func:0 && | +| stl.h:747:33:747:38 | format | 1 | func:0 && | +| stl.h:752:6:752:48 | same_signature_as_format_but_different_name | 0 | format_string | +| stl.h:752:6:752:48 | same_signature_as_format_but_different_name | 1 | func:0 && | +| stl.h:756:8:756:8 | operator= | 0 | const thread & | +| stl.h:756:8:756:8 | thread | 0 | const thread & | +| stl.h:759:12:759:17 | thread | 0 | func:0 && | +| stl.h:759:12:759:17 | thread | 0 | func:0 && | +| stl.h:759:12:759:17 | thread | 0 | func:0 && | +| stl.h:759:12:759:17 | thread | 0 | func:0 && | +| stl.h:759:12:759:17 | thread | 1 | func:1 && | +| stl.h:759:12:759:17 | thread | 1 | func:1 && | +| stl.h:759:12:759:17 | thread | 1 | func:1 && | +| stl.h:759:12:759:17 | thread | 1 | func:1 && | | string.cpp:17:6:17:9 | sink | 0 | const char * | | string.cpp:18:6:18:9 | sink | 0 | const string & | | string.cpp:19:6:19:9 | sink | 0 | const char * | | string.cpp:19:6:19:9 | sink | 1 | const char * | | string.cpp:20:6:20:9 | sink | 0 | char | | string.cpp:21:6:21:9 | sink | 0 | iterator | +| string.cpp:22:6:22:9 | sink | 0 | string_view | +| string.cpp:592:8:592:8 | operator= | 0 | Iterator && | +| string.cpp:592:8:592:8 | operator= | 0 | const Iterator & | +| string.cpp:597:9:597:9 | operator= | 0 | Range && | +| string.cpp:597:9:597:9 | operator= | 0 | const Range & | | stringstream.cpp:13:6:13:9 | sink | 0 | int | | stringstream.cpp:15:6:15:9 | sink | 0 | const string & | | stringstream.cpp:18:6:18:9 | sink | 0 | const basic_ostream> & | @@ -28280,9 +28329,9 @@ getParameterTypeName | thread.cpp:14:6:14:22 | thread_function_2 | 0 | S | | thread.cpp:18:6:18:22 | thread_function_3 | 0 | S * | | thread.cpp:18:6:18:22 | thread_function_3 | 1 | int | -| thread.cpp:30:18:30:18 | (unnamed constructor) | 0 | const lambda [] type at line 762, col. 18 & | -| thread.cpp:30:18:30:18 | (unnamed constructor) | 0 | lambda [] type at line 762, col. 18 && | -| thread.cpp:30:18:30:18 | operator= | 0 | const lambda [] type at line 762, col. 18 & | +| thread.cpp:30:18:30:18 | (unnamed constructor) | 0 | const lambda [] type at line 841, col. 18 & | +| thread.cpp:30:18:30:18 | (unnamed constructor) | 0 | lambda [] type at line 841, col. 18 && | +| thread.cpp:30:18:30:18 | operator= | 0 | const lambda [] type at line 841, col. 18 & | | thread.cpp:30:20:30:20 | _FUN | 0 | S * | | thread.cpp:30:20:30:20 | operator() | 0 | S * | | vector.cpp:13:6:13:9 | sink | 0 | int | @@ -28292,6 +28341,7 @@ getParameterTypeName | vector.cpp:37:6:37:23 | test_element_taint | 0 | int | | vector.cpp:145:8:145:8 | operator= | 0 | MyPair && | | vector.cpp:145:8:145:8 | operator= | 0 | const MyPair & | +| vector.cpp:150:8:150:8 | MyVectorContainer | 0 | MyVectorContainer && | | vector.cpp:150:8:150:8 | MyVectorContainer | 0 | const MyVectorContainer & | | vector.cpp:150:8:150:8 | operator= | 0 | MyVectorContainer && | | vector.cpp:150:8:150:8 | operator= | 0 | const MyVectorContainer & | @@ -28307,8 +28357,8 @@ getParameterTypeName | vector.cpp:417:6:417:25 | test_vector_inserter | 0 | char * | | vector.cpp:454:7:454:12 | memcpy | 0 | void * | | vector.cpp:454:7:454:12 | memcpy | 1 | const void * | +| vector.cpp:454:7:454:12 | memcpy | 2 | decltype(...) | | vector.cpp:454:7:454:12 | memcpy | 2 | size_t | -| vector.cpp:454:7:454:12 | memcpy | 2 | unsigned long | | vector.cpp:461:6:461:9 | sink | 0 | vector> & | | vector.cpp:462:6:462:9 | sink | 0 | string & | | zmq.cpp:9:8:9:8 | operator= | 0 | const zmq_msg_t & | diff --git a/cpp/ql/test/library-tests/dataflow/taint-tests/type_traits.h b/cpp/ql/test/library-tests/dataflow/taint-tests/type_traits.h index 448b6e85acb9..e69de29bb2d1 100644 --- a/cpp/ql/test/library-tests/dataflow/taint-tests/type_traits.h +++ b/cpp/ql/test/library-tests/dataflow/taint-tests/type_traits.h @@ -1,35 +0,0 @@ -template -struct remove_const { typedef T type; }; - -template -struct remove_const { typedef T type; }; - -// `remove_const_t` removes any `const` specifier from `T` -template -using remove_const_t = typename remove_const::type; - -template -struct remove_reference { typedef T type; }; - -template -struct remove_reference { typedef T type; }; - -template -struct remove_reference { typedef T type; }; - -// `remove_reference_t` removes any `&` from `T` -template -using remove_reference_t = typename remove_reference::type; - -template -struct decay_impl { - typedef T type; -}; - -template -struct decay_impl { - typedef T* type; -}; - -template -using decay_t = typename decay_impl>::type; diff --git a/cpp/ql/test/query-tests/Best Practices/Unused Entities/UnusedLocals/UnusedLocals.expected b/cpp/ql/test/query-tests/Best Practices/Unused Entities/UnusedLocals/UnusedLocals.expected index 8db9fdb3ec64..cf5058b3cfa8 100644 --- a/cpp/ql/test/query-tests/Best Practices/Unused Entities/UnusedLocals/UnusedLocals.expected +++ b/cpp/ql/test/query-tests/Best Practices/Unused Entities/UnusedLocals/UnusedLocals.expected @@ -4,7 +4,6 @@ | code2.cpp:26:16:26:17 | v1 | Variable v1 is not used. | | code2.cpp:42:11:42:16 | myVar1 | Variable myVar1 is not used. | | code2.cpp:64:7:64:8 | v3 | Variable v3 is not used. | -| code2.cpp:108:11:108:12 | v2 | Variable v2 is not used. | | code2.cpp:128:9:128:9 | b | Variable b is not used. | | code.c:10:18:10:18 | y | Variable y is not used. | | code.c:11:18:11:18 | z | Variable z is not used. | diff --git a/cpp/ql/test/query-tests/Best Practices/Unused Entities/UnusedLocals/code2.cpp b/cpp/ql/test/query-tests/Best Practices/Unused Entities/UnusedLocals/code2.cpp index 9e92ec37b4cf..e033a69f9610 100644 --- a/cpp/ql/test/query-tests/Best Practices/Unused Entities/UnusedLocals/code2.cpp +++ b/cpp/ql/test/query-tests/Best Practices/Unused Entities/UnusedLocals/code2.cpp @@ -105,7 +105,7 @@ void test_range_based_for() output(v1); } - for (int v2 : myContainer) // $ Alert // BAD: v2 is not used + for (int v2 : myContainer) // GOOD: iterator dereference may have side effects { } } @@ -181,3 +181,15 @@ void test_maybe_unused() { [[maybe_unused]] int unused; // GOOD: explicitly marked as maybe_unused } + +int globalVar; + +int initialize() +{ + return ++globalVar; +} + +void test_initializer_side_effect() +{ + int initialized = initialize(); // GOOD (initializer has a side effect) +} diff --git a/cpp/ql/test/query-tests/Best Practices/Unused Entities/UnusedStaticVariables/test.cpp b/cpp/ql/test/query-tests/Best Practices/Unused Entities/UnusedStaticVariables/test.cpp index 0483595ba385..13ab913733bb 100644 --- a/cpp/ql/test/query-tests/Best Practices/Unused Entities/UnusedStaticVariables/test.cpp +++ b/cpp/ql/test/query-tests/Best Practices/Unused Entities/UnusedStaticVariables/test.cpp @@ -1,4 +1,4 @@ -// semmle-extractor-options: -std=c++17 +// semmle-extractor-options: -std=c++20 int globalVar; // GOOD (not static) static int staticVar1; // GOOD (used) static int staticVar2; // GOOD (used) @@ -29,3 +29,30 @@ class MyTemplateClass // never instantiated // ... } }; + +int initialize() +{ + return ++globalVar; +} + +static int initialized = initialize(); // GOOD (initializer has a side effect) + +struct WithConstructor +{ + WithConstructor() { ++globalVar; } +}; + +struct WithDestructor +{ + ~WithDestructor() { ++globalVar; } +}; + +static WithConstructor constructed; // GOOD (constructor has a side effect) +static WithDestructor destructed; // GOOD (destructor has a side effect) + +static auto sum(auto... values) +{ + return (0 + ... + values); +} + +int globalVar2 = sum() + sum(2); diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-078/semmle/ExecTainted/ExecTainted.qlref b/cpp/ql/test/query-tests/Security/CWE/CWE-078/semmle/ExecTainted/ExecTainted.qlref index 4e996a47ad54..77cdee7b2839 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-078/semmle/ExecTainted/ExecTainted.qlref +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-078/semmle/ExecTainted/ExecTainted.qlref @@ -1,2 +1,4 @@ query: Security/CWE/CWE-078/ExecTainted.ql -postprocess: utils/test/InlineExpectationsTestQuery.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextFileWrite.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextFileWrite.expected index e283cbeb57bc..0406b6c174a6 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextFileWrite.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextFileWrite.expected @@ -1,11 +1,52 @@ +#select +| test2.cpp:43:2:43:8 | call to fprintf | test2.cpp:43:36:43:43 | password | test2.cpp:43:36:43:43 | password | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:43:36:43:43 | password | this source. | +| test2.cpp:44:2:44:8 | call to fprintf | test2.cpp:44:37:44:45 | thepasswd | test2.cpp:44:37:44:45 | thepasswd | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:44:37:44:45 | thepasswd | this source. | +| test2.cpp:45:2:45:8 | call to fprintf | test2.cpp:45:38:45:47 | accountkey | test2.cpp:45:38:45:47 | accountkey | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:45:38:45:47 | accountkey | this source. | +| test2.cpp:50:2:50:8 | call to fprintf | test2.cpp:50:41:50:53 | passwd_config | test2.cpp:50:41:50:53 | passwd_config | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:50:41:50:53 | passwd_config | this source. | +| test2.cpp:54:2:54:8 | call to fprintf | test2.cpp:54:41:54:52 | widepassword | test2.cpp:54:41:54:52 | widepassword | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:54:41:54:52 | widepassword | this source. | +| test2.cpp:55:2:55:8 | call to fprintf | test2.cpp:55:40:55:51 | widepassword | test2.cpp:55:40:55:51 | widepassword | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:55:40:55:51 | widepassword | this source. | +| test2.cpp:57:2:57:8 | call to fprintf | test2.cpp:57:39:57:49 | call to getPassword | test2.cpp:57:39:57:49 | call to getPassword | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:57:39:57:49 | call to getPassword | this source. | +| test2.cpp:65:3:65:9 | call to fprintf | test2.cpp:62:18:62:25 | password | test2.cpp:65:31:65:34 | cpy1 | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:62:18:62:25 | password | this source. | +| test2.cpp:73:3:73:9 | call to fprintf | test2.cpp:72:15:72:24 | password | test2.cpp:73:30:73:32 | *buf | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:72:17:72:24 | password | this source. | +| test2.cpp:99:3:99:9 | call to fprintf | test2.cpp:98:45:98:52 | password | test2.cpp:99:27:99:32 | *buffer | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:98:45:98:52 | password | this source. | +| test2.cpp:154:2:154:8 | call to fprintf | test2.cpp:153:31:153:38 | password | test2.cpp:154:21:154:22 | *pw | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:153:31:153:38 | password | this source. | +| test2.cpp:168:2:168:8 | call to fprintf | test2.cpp:167:41:167:60 | password | test2.cpp:168:30:168:34 | *call to c_str | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:167:53:167:60 | password | this source. | +| test2.cpp:174:2:174:8 | call to fprintf | test2.cpp:173:28:173:35 | *password | test2.cpp:174:26:174:30 | *call to c_str | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:173:28:173:35 | password | this source. | +| test.cpp:45:3:45:7 | call to fputs | test.cpp:45:9:45:19 | thePassword | test.cpp:45:9:45:19 | thePassword | This write into file 'file' may contain unencrypted data from $@. | test.cpp:45:9:45:19 | thePassword | this source. | +| test.cpp:70:35:70:35 | call to operator<< | test.cpp:70:38:70:48 | thePassword | test.cpp:70:38:70:48 | thePassword | This write into file 'mystream' may contain unencrypted data from $@. | test.cpp:70:38:70:48 | thePassword | this source. | +| test.cpp:73:37:73:41 | call to write | test.cpp:70:38:70:48 | thePassword | test.cpp:73:43:73:53 | thePassword | This write into file 'mystream' may contain unencrypted data from $@. | test.cpp:70:38:70:48 | thePassword | this source. | +| test.cpp:73:37:73:41 | call to write | test.cpp:73:43:73:53 | thePassword | test.cpp:73:43:73:53 | thePassword | This write into file 'mystream' may contain unencrypted data from $@. | test.cpp:73:43:73:53 | thePassword | this source. | +| test.cpp:73:37:73:41 | call to write | test.cpp:73:63:73:73 | thePassword | test.cpp:73:43:73:53 | thePassword | This write into file 'mystream' may contain unencrypted data from $@. | test.cpp:73:63:73:73 | thePassword | this source. | edges +| file://:0:0:0:0 | * ... | test2.cpp:162:9:162:14 | result | provenance | TaintFunction | +| file://:0:0:0:0 | *++ ... | file://:0:0:0:0 | * ... | provenance | | +| file://:0:0:0:0 | ++ ... | file://:0:0:0:0 | * ... | provenance | | +| file://:0:0:0:0 | ++ ... | file://:0:0:0:0 | *++ ... | provenance | | | test2.cpp:62:18:62:25 | password | test2.cpp:62:18:62:25 | password | provenance | | | test2.cpp:62:18:62:25 | password | test2.cpp:65:31:65:34 | cpy1 | provenance | | | test2.cpp:72:15:72:24 | password | test2.cpp:73:30:73:32 | *buf | provenance | DataFlowFunction | | test2.cpp:98:45:98:52 | password | test2.cpp:99:27:99:32 | *buffer | provenance | TaintFunction | +| test2.cpp:153:31:153:38 | password | test2.cpp:153:40:153:44 | *call to c_str | provenance | TaintFunction | +| test2.cpp:153:40:153:44 | *call to c_str | test2.cpp:154:21:154:22 | *pw | provenance | | +| test2.cpp:157:41:157:41 | s | test2.cpp:160:17:160:17 | *s | provenance | | +| test2.cpp:160:17:160:17 | *s | test2.cpp:160:17:160:17 | call to begin | provenance | TaintFunction | +| test2.cpp:160:17:160:17 | call to begin | file://:0:0:0:0 | * ... | provenance | | +| test2.cpp:160:17:160:17 | call to begin | file://:0:0:0:0 | *++ ... | provenance | | +| test2.cpp:160:17:160:17 | call to begin | file://:0:0:0:0 | ++ ... | provenance | | +| test2.cpp:162:9:162:14 | result | test2.cpp:157:13:157:27 | *copy_characters | provenance | | +| test2.cpp:167:25:167:39 | call to copy_characters | test2.cpp:167:25:167:39 | call to copy_characters | provenance | | +| test2.cpp:167:25:167:39 | call to copy_characters | test2.cpp:168:30:168:34 | *call to c_str | provenance | TaintFunction | +| test2.cpp:167:41:167:60 | password | test2.cpp:157:41:157:41 | s | provenance | | +| test2.cpp:167:41:167:60 | password | test2.cpp:167:25:167:39 | call to copy_characters | provenance | TaintFunction | +| test2.cpp:167:41:167:60 | password | test2.cpp:167:41:167:60 | password | provenance | | +| test2.cpp:173:28:173:35 | *password | test2.cpp:173:28:173:35 | *password | provenance | | +| test2.cpp:173:28:173:35 | *password | test2.cpp:174:26:174:30 | *call to c_str | provenance | TaintFunction | | test.cpp:70:38:70:48 | thePassword | test.cpp:73:43:73:53 | thePassword | provenance | | | test.cpp:73:63:73:73 | thePassword | test.cpp:73:43:73:53 | thePassword | provenance | | nodes +| file://:0:0:0:0 | * ... | semmle.label | * ... | +| file://:0:0:0:0 | *++ ... | semmle.label | *++ ... | +| file://:0:0:0:0 | ++ ... | semmle.label | ++ ... | | test2.cpp:43:36:43:43 | password | semmle.label | password | | test2.cpp:44:37:44:45 | thepasswd | semmle.label | thepasswd | | test2.cpp:45:38:45:47 | accountkey | semmle.label | accountkey | @@ -20,25 +61,26 @@ nodes | test2.cpp:73:30:73:32 | *buf | semmle.label | *buf | | test2.cpp:98:45:98:52 | password | semmle.label | password | | test2.cpp:99:27:99:32 | *buffer | semmle.label | *buffer | +| test2.cpp:153:31:153:38 | password | semmle.label | password | +| test2.cpp:153:40:153:44 | *call to c_str | semmle.label | *call to c_str | +| test2.cpp:154:21:154:22 | *pw | semmle.label | *pw | +| test2.cpp:157:13:157:27 | *copy_characters | semmle.label | *copy_characters | +| test2.cpp:157:41:157:41 | s | semmle.label | s | +| test2.cpp:160:17:160:17 | *s | semmle.label | *s | +| test2.cpp:160:17:160:17 | call to begin | semmle.label | call to begin | +| test2.cpp:162:9:162:14 | result | semmle.label | result | +| test2.cpp:167:25:167:39 | call to copy_characters | semmle.label | call to copy_characters | +| test2.cpp:167:25:167:39 | call to copy_characters | semmle.label | call to copy_characters | +| test2.cpp:167:41:167:60 | password | semmle.label | password | +| test2.cpp:167:41:167:60 | password | semmle.label | password | +| test2.cpp:168:30:168:34 | *call to c_str | semmle.label | *call to c_str | +| test2.cpp:173:28:173:35 | *password | semmle.label | *password | +| test2.cpp:173:28:173:35 | *password | semmle.label | *password | +| test2.cpp:174:26:174:30 | *call to c_str | semmle.label | *call to c_str | | test.cpp:45:9:45:19 | thePassword | semmle.label | thePassword | | test.cpp:70:38:70:48 | thePassword | semmle.label | thePassword | | test.cpp:70:38:70:48 | thePassword | semmle.label | thePassword | | test.cpp:73:43:73:53 | thePassword | semmle.label | thePassword | | test.cpp:73:63:73:73 | thePassword | semmle.label | thePassword | subpaths -#select -| test2.cpp:43:2:43:8 | call to fprintf | test2.cpp:43:36:43:43 | password | test2.cpp:43:36:43:43 | password | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:43:36:43:43 | password | this source. | -| test2.cpp:44:2:44:8 | call to fprintf | test2.cpp:44:37:44:45 | thepasswd | test2.cpp:44:37:44:45 | thepasswd | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:44:37:44:45 | thepasswd | this source. | -| test2.cpp:45:2:45:8 | call to fprintf | test2.cpp:45:38:45:47 | accountkey | test2.cpp:45:38:45:47 | accountkey | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:45:38:45:47 | accountkey | this source. | -| test2.cpp:50:2:50:8 | call to fprintf | test2.cpp:50:41:50:53 | passwd_config | test2.cpp:50:41:50:53 | passwd_config | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:50:41:50:53 | passwd_config | this source. | -| test2.cpp:54:2:54:8 | call to fprintf | test2.cpp:54:41:54:52 | widepassword | test2.cpp:54:41:54:52 | widepassword | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:54:41:54:52 | widepassword | this source. | -| test2.cpp:55:2:55:8 | call to fprintf | test2.cpp:55:40:55:51 | widepassword | test2.cpp:55:40:55:51 | widepassword | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:55:40:55:51 | widepassword | this source. | -| test2.cpp:57:2:57:8 | call to fprintf | test2.cpp:57:39:57:49 | call to getPassword | test2.cpp:57:39:57:49 | call to getPassword | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:57:39:57:49 | call to getPassword | this source. | -| test2.cpp:65:3:65:9 | call to fprintf | test2.cpp:62:18:62:25 | password | test2.cpp:65:31:65:34 | cpy1 | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:62:18:62:25 | password | this source. | -| test2.cpp:73:3:73:9 | call to fprintf | test2.cpp:72:15:72:24 | password | test2.cpp:73:30:73:32 | *buf | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:72:17:72:24 | password | this source. | -| test2.cpp:99:3:99:9 | call to fprintf | test2.cpp:98:45:98:52 | password | test2.cpp:99:27:99:32 | *buffer | This write into file 'log' may contain unencrypted data from $@. | test2.cpp:98:45:98:52 | password | this source. | -| test.cpp:45:3:45:7 | call to fputs | test.cpp:45:9:45:19 | thePassword | test.cpp:45:9:45:19 | thePassword | This write into file 'file' may contain unencrypted data from $@. | test.cpp:45:9:45:19 | thePassword | this source. | -| test.cpp:70:35:70:35 | call to operator<< | test.cpp:70:38:70:48 | thePassword | test.cpp:70:38:70:48 | thePassword | This write into file 'mystream' may contain unencrypted data from $@. | test.cpp:70:38:70:48 | thePassword | this source. | -| test.cpp:73:37:73:41 | call to write | test.cpp:70:38:70:48 | thePassword | test.cpp:73:43:73:53 | thePassword | This write into file 'mystream' may contain unencrypted data from $@. | test.cpp:70:38:70:48 | thePassword | this source. | -| test.cpp:73:37:73:41 | call to write | test.cpp:73:43:73:53 | thePassword | test.cpp:73:43:73:53 | thePassword | This write into file 'mystream' may contain unencrypted data from $@. | test.cpp:73:43:73:53 | thePassword | this source. | -| test.cpp:73:37:73:41 | call to write | test.cpp:73:63:73:73 | thePassword | test.cpp:73:43:73:53 | thePassword | This write into file 'mystream' may contain unencrypted data from $@. | test.cpp:73:63:73:73 | thePassword | this source. | +| test2.cpp:167:41:167:60 | password | test2.cpp:157:41:157:41 | s | test2.cpp:157:13:157:27 | *copy_characters | test2.cpp:167:25:167:39 | call to copy_characters | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextFileWrite.qlref b/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextFileWrite.qlref index 9469736d8c77..bc1d0c4af765 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextFileWrite.qlref +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextFileWrite.qlref @@ -1,2 +1,4 @@ query: Security/CWE/CWE-311/CleartextFileWrite.ql -postprocess: utils/test/InlineExpectationsTestQuery.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextTransmission.expected b/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextTransmission.expected index fae3d76599a8..370555e6811b 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextTransmission.expected +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/CleartextTransmission.expected @@ -1,3 +1,44 @@ +#select +| test3.cpp:22:3:22:6 | call to send | test3.cpp:22:15:22:23 | password1 | test3.cpp:22:15:22:23 | password1 | This operation transmits 'password1', which may contain unencrypted sensitive data from $@. | test3.cpp:22:15:22:23 | password1 | password1 | +| test3.cpp:26:3:26:6 | call to send | test3.cpp:26:15:26:23 | password2 | test3.cpp:26:15:26:23 | password2 | This operation transmits 'password2', which may contain unencrypted sensitive data from $@. | test3.cpp:26:15:26:23 | password2 | password2 | +| test3.cpp:47:3:47:6 | call to recv | test3.cpp:47:15:47:22 | password | test3.cpp:47:15:47:22 | password | This operation receives into 'password', which may put unencrypted sensitive data into $@. | test3.cpp:47:15:47:22 | password | password | +| test3.cpp:55:3:55:6 | call to recv | test3.cpp:55:15:55:22 | password | test3.cpp:55:15:55:22 | password | This operation receives into 'password', which may put unencrypted sensitive data into $@. | test3.cpp:55:15:55:22 | password | password | +| test3.cpp:76:3:76:6 | call to send | test3.cpp:74:21:74:29 | password1 | test3.cpp:76:15:76:17 | ptr | This operation transmits 'ptr', which may contain unencrypted sensitive data from $@. | test3.cpp:74:21:74:29 | password1 | password1 | +| test3.cpp:83:3:83:6 | call to recv | test3.cpp:81:15:81:22 | password | test3.cpp:83:15:83:17 | ptr | This operation receives into 'ptr', which may put unencrypted sensitive data into $@. | test3.cpp:81:15:81:22 | password | password | +| test3.cpp:101:3:101:6 | call to read | test3.cpp:101:12:101:19 | password | test3.cpp:101:12:101:19 | password | This operation receives into 'password', which may put unencrypted sensitive data into $@. | test3.cpp:101:12:101:19 | password | password | +| test3.cpp:114:2:114:5 | call to recv | test3.cpp:134:11:134:18 | password | test3.cpp:114:14:114:19 | buffer | This operation receives into 'buffer', which may put unencrypted sensitive data into $@. | test3.cpp:134:11:134:18 | password | password | +| test3.cpp:140:3:140:6 | call to send | test3.cpp:138:24:138:32 | password1 | test3.cpp:140:15:140:17 | ptr | This operation transmits 'ptr', which may contain unencrypted sensitive data from $@. | test3.cpp:138:24:138:32 | password1 | password1 | +| test3.cpp:146:3:146:6 | call to send | test3.cpp:126:9:126:23 | global_password | test3.cpp:146:15:146:18 | data | This operation transmits 'data', which may contain unencrypted sensitive data from $@. | test3.cpp:126:9:126:23 | global_password | global_password | +| test3.cpp:159:3:159:6 | call to send | test3.cpp:157:19:157:26 | password | test3.cpp:159:15:159:20 | *buffer | This operation transmits '*buffer', which may contain unencrypted sensitive data from $@. | test3.cpp:157:19:157:26 | password | password | +| test3.cpp:228:2:228:5 | call to send | test3.cpp:228:26:228:33 | password | test3.cpp:228:26:228:33 | password | This operation transmits 'password', which may contain unencrypted sensitive data from $@. | test3.cpp:228:26:228:33 | password | password | +| test3.cpp:241:2:241:6 | call to fgets | test3.cpp:241:8:241:15 | password | test3.cpp:241:8:241:15 | password | This operation receives into 'password', which may put unencrypted sensitive data into $@. | test3.cpp:241:8:241:15 | password | password | +| test3.cpp:272:3:272:6 | call to send | test3.cpp:270:16:270:23 | password | test3.cpp:272:15:272:18 | *data | This operation transmits '*data', which may contain unencrypted sensitive data from $@. | test3.cpp:270:16:270:23 | password | password | +| test3.cpp:290:2:290:5 | call to send | test3.cpp:317:11:317:19 | password1 | test3.cpp:290:14:290:17 | data | This operation transmits 'data', which may contain unencrypted sensitive data from $@. | test3.cpp:317:11:317:19 | password1 | password1 | +| test3.cpp:295:2:295:5 | call to send | test3.cpp:322:16:322:24 | password2 | test3.cpp:295:14:295:17 | data | This operation transmits 'data', which may contain unencrypted sensitive data from $@. | test3.cpp:322:16:322:24 | password2 | password2 | +| test3.cpp:300:2:300:5 | call to send | test3.cpp:322:16:322:24 | password2 | test3.cpp:300:14:300:17 | data | This operation transmits 'data', which may contain unencrypted sensitive data from $@. | test3.cpp:322:16:322:24 | password2 | password2 | +| test3.cpp:341:4:341:7 | call to recv | test3.cpp:341:16:341:23 | password | test3.cpp:341:16:341:23 | password | This operation receives into 'password', which may put unencrypted sensitive data into $@. | test3.cpp:341:16:341:23 | password | password | +| test3.cpp:388:3:388:6 | call to recv | test3.cpp:388:15:388:22 | password | test3.cpp:388:15:388:22 | password | This operation receives into 'password', which may put unencrypted sensitive data into $@. | test3.cpp:388:15:388:22 | password | password | +| test3.cpp:414:3:414:6 | call to recv | test3.cpp:414:15:414:24 | password | test3.cpp:414:15:414:24 | password | This operation receives into 'password', which may put unencrypted sensitive data into $@. | test3.cpp:414:15:414:24 | password | password | +| test3.cpp:420:3:420:6 | call to recv | test3.cpp:420:15:420:24 | password | test3.cpp:420:15:420:24 | password | This operation receives into 'password', which may put unencrypted sensitive data into $@. | test3.cpp:420:15:420:24 | password | password | +| test3.cpp:431:2:431:6 | call to fgets | test3.cpp:431:8:431:15 | password | test3.cpp:431:8:431:15 | password | This operation receives into 'password', which may put unencrypted sensitive data into $@. | test3.cpp:431:8:431:15 | password | password | +| test3.cpp:507:2:507:5 | call to send | test3.cpp:507:14:507:39 | social_security_number | test3.cpp:507:14:507:39 | social_security_number | This operation transmits 'social_security_number', which may contain unencrypted sensitive data from $@. | test3.cpp:507:14:507:39 | social_security_number | social_security_number | +| test3.cpp:508:2:508:5 | call to send | test3.cpp:508:14:508:33 | socialSecurityNo | test3.cpp:508:14:508:33 | socialSecurityNo | This operation transmits 'socialSecurityNo', which may contain unencrypted sensitive data from $@. | test3.cpp:508:14:508:33 | socialSecurityNo | socialSecurityNo | +| test3.cpp:509:2:509:5 | call to send | test3.cpp:509:14:509:29 | homePostCode | test3.cpp:509:14:509:29 | homePostCode | This operation transmits 'homePostCode', which may contain unencrypted sensitive data from $@. | test3.cpp:509:14:509:29 | homePostCode | homePostCode | +| test3.cpp:510:2:510:5 | call to send | test3.cpp:510:14:510:28 | my_zip_code | test3.cpp:510:14:510:28 | my_zip_code | This operation transmits 'my_zip_code', which may contain unencrypted sensitive data from $@. | test3.cpp:510:14:510:28 | my_zip_code | my_zip_code | +| test3.cpp:511:2:511:5 | call to send | test3.cpp:511:14:511:26 | telephone | test3.cpp:511:14:511:26 | telephone | This operation transmits 'telephone', which may contain unencrypted sensitive data from $@. | test3.cpp:511:14:511:26 | telephone | telephone | +| test3.cpp:512:2:512:5 | call to send | test3.cpp:512:14:512:36 | mobile_phone_number | test3.cpp:512:14:512:36 | mobile_phone_number | This operation transmits 'mobile_phone_number', which may contain unencrypted sensitive data from $@. | test3.cpp:512:14:512:36 | mobile_phone_number | mobile_phone_number | +| test3.cpp:513:2:513:5 | call to send | test3.cpp:513:14:513:22 | email | test3.cpp:513:14:513:22 | email | This operation transmits 'email', which may contain unencrypted sensitive data from $@. | test3.cpp:513:14:513:22 | email | email | +| test3.cpp:514:2:514:5 | call to send | test3.cpp:514:14:514:38 | my_credit_card_number | test3.cpp:514:14:514:38 | my_credit_card_number | This operation transmits 'my_credit_card_number', which may contain unencrypted sensitive data from $@. | test3.cpp:514:14:514:38 | my_credit_card_number | my_credit_card_number | +| test3.cpp:515:2:515:5 | call to send | test3.cpp:515:14:515:35 | my_bank_account_no | test3.cpp:515:14:515:35 | my_bank_account_no | This operation transmits 'my_bank_account_no', which may contain unencrypted sensitive data from $@. | test3.cpp:515:14:515:35 | my_bank_account_no | my_bank_account_no | +| test3.cpp:516:2:516:5 | call to send | test3.cpp:516:14:516:29 | employerName | test3.cpp:516:14:516:29 | employerName | This operation transmits 'employerName', which may contain unencrypted sensitive data from $@. | test3.cpp:516:14:516:29 | employerName | employerName | +| test3.cpp:517:2:517:5 | call to send | test3.cpp:517:14:517:29 | medical_info | test3.cpp:517:14:517:29 | medical_info | This operation transmits 'medical_info', which may contain unencrypted sensitive data from $@. | test3.cpp:517:14:517:29 | medical_info | medical_info | +| test3.cpp:518:2:518:5 | call to send | test3.cpp:518:14:518:28 | license_key | test3.cpp:518:14:518:28 | license_key | This operation transmits 'license_key', which may contain unencrypted sensitive data from $@. | test3.cpp:518:14:518:28 | license_key | license_key | +| test3.cpp:527:3:527:6 | call to send | test3.cpp:526:44:526:54 | my_latitude | test3.cpp:527:15:527:20 | *buffer | This operation transmits '*buffer', which may contain unencrypted sensitive data from $@. | test3.cpp:526:44:526:54 | my_latitude | my_latitude | +| test3.cpp:533:3:533:6 | call to send | test3.cpp:532:45:532:58 | home_longitude | test3.cpp:533:15:533:20 | *buffer | This operation transmits '*buffer', which may contain unencrypted sensitive data from $@. | test3.cpp:532:45:532:58 | home_longitude | home_longitude | +| test3.cpp:552:3:552:6 | call to send | test3.cpp:551:47:551:58 | salaryString | test3.cpp:552:15:552:20 | *buffer | This operation transmits '*buffer', which may contain unencrypted sensitive data from $@. | test3.cpp:551:47:551:58 | salaryString | salaryString | +| test3.cpp:559:3:559:6 | call to send | test3.cpp:556:19:556:30 | salaryString | test3.cpp:559:15:559:20 | *buffer | This operation transmits '*buffer', which may contain unencrypted sensitive data from $@. | test3.cpp:556:19:556:30 | salaryString | salaryString | +| test3.cpp:572:2:572:5 | call to send | test3.cpp:571:8:571:21 | call to get_home_phone | test3.cpp:572:14:572:16 | str | This operation transmits 'str', which may contain unencrypted sensitive data from $@. | test3.cpp:571:8:571:21 | call to get_home_phone | call to get_home_phone | +| test3.cpp:578:2:578:5 | call to send | test3.cpp:577:8:577:23 | call to get_home_address | test3.cpp:578:14:578:16 | str | This operation transmits 'str', which may contain unencrypted sensitive data from $@. | test3.cpp:577:8:577:23 | call to get_home_address | call to get_home_address | edges | test3.cpp:74:21:74:29 | password1 | test3.cpp:74:21:74:29 | password1 | provenance | | | test3.cpp:74:21:74:29 | password1 | test3.cpp:76:15:76:17 | ptr | provenance | | @@ -140,44 +181,3 @@ nodes | test3.cpp:578:14:578:16 | str | semmle.label | str | subpaths | test3.cpp:138:24:138:32 | password1 | test3.cpp:117:28:117:33 | buffer | test3.cpp:117:13:117:14 | *id | test3.cpp:138:21:138:22 | call to id | -#select -| test3.cpp:22:3:22:6 | call to send | test3.cpp:22:15:22:23 | password1 | test3.cpp:22:15:22:23 | password1 | This operation transmits 'password1', which may contain unencrypted sensitive data from $@. | test3.cpp:22:15:22:23 | password1 | password1 | -| test3.cpp:26:3:26:6 | call to send | test3.cpp:26:15:26:23 | password2 | test3.cpp:26:15:26:23 | password2 | This operation transmits 'password2', which may contain unencrypted sensitive data from $@. | test3.cpp:26:15:26:23 | password2 | password2 | -| test3.cpp:47:3:47:6 | call to recv | test3.cpp:47:15:47:22 | password | test3.cpp:47:15:47:22 | password | This operation receives into 'password', which may put unencrypted sensitive data into $@. | test3.cpp:47:15:47:22 | password | password | -| test3.cpp:55:3:55:6 | call to recv | test3.cpp:55:15:55:22 | password | test3.cpp:55:15:55:22 | password | This operation receives into 'password', which may put unencrypted sensitive data into $@. | test3.cpp:55:15:55:22 | password | password | -| test3.cpp:76:3:76:6 | call to send | test3.cpp:74:21:74:29 | password1 | test3.cpp:76:15:76:17 | ptr | This operation transmits 'ptr', which may contain unencrypted sensitive data from $@. | test3.cpp:74:21:74:29 | password1 | password1 | -| test3.cpp:83:3:83:6 | call to recv | test3.cpp:81:15:81:22 | password | test3.cpp:83:15:83:17 | ptr | This operation receives into 'ptr', which may put unencrypted sensitive data into $@. | test3.cpp:81:15:81:22 | password | password | -| test3.cpp:101:3:101:6 | call to read | test3.cpp:101:12:101:19 | password | test3.cpp:101:12:101:19 | password | This operation receives into 'password', which may put unencrypted sensitive data into $@. | test3.cpp:101:12:101:19 | password | password | -| test3.cpp:114:2:114:5 | call to recv | test3.cpp:134:11:134:18 | password | test3.cpp:114:14:114:19 | buffer | This operation receives into 'buffer', which may put unencrypted sensitive data into $@. | test3.cpp:134:11:134:18 | password | password | -| test3.cpp:140:3:140:6 | call to send | test3.cpp:138:24:138:32 | password1 | test3.cpp:140:15:140:17 | ptr | This operation transmits 'ptr', which may contain unencrypted sensitive data from $@. | test3.cpp:138:24:138:32 | password1 | password1 | -| test3.cpp:146:3:146:6 | call to send | test3.cpp:126:9:126:23 | global_password | test3.cpp:146:15:146:18 | data | This operation transmits 'data', which may contain unencrypted sensitive data from $@. | test3.cpp:126:9:126:23 | global_password | global_password | -| test3.cpp:159:3:159:6 | call to send | test3.cpp:157:19:157:26 | password | test3.cpp:159:15:159:20 | *buffer | This operation transmits '*buffer', which may contain unencrypted sensitive data from $@. | test3.cpp:157:19:157:26 | password | password | -| test3.cpp:228:2:228:5 | call to send | test3.cpp:228:26:228:33 | password | test3.cpp:228:26:228:33 | password | This operation transmits 'password', which may contain unencrypted sensitive data from $@. | test3.cpp:228:26:228:33 | password | password | -| test3.cpp:241:2:241:6 | call to fgets | test3.cpp:241:8:241:15 | password | test3.cpp:241:8:241:15 | password | This operation receives into 'password', which may put unencrypted sensitive data into $@. | test3.cpp:241:8:241:15 | password | password | -| test3.cpp:272:3:272:6 | call to send | test3.cpp:270:16:270:23 | password | test3.cpp:272:15:272:18 | *data | This operation transmits '*data', which may contain unencrypted sensitive data from $@. | test3.cpp:270:16:270:23 | password | password | -| test3.cpp:290:2:290:5 | call to send | test3.cpp:317:11:317:19 | password1 | test3.cpp:290:14:290:17 | data | This operation transmits 'data', which may contain unencrypted sensitive data from $@. | test3.cpp:317:11:317:19 | password1 | password1 | -| test3.cpp:295:2:295:5 | call to send | test3.cpp:322:16:322:24 | password2 | test3.cpp:295:14:295:17 | data | This operation transmits 'data', which may contain unencrypted sensitive data from $@. | test3.cpp:322:16:322:24 | password2 | password2 | -| test3.cpp:300:2:300:5 | call to send | test3.cpp:322:16:322:24 | password2 | test3.cpp:300:14:300:17 | data | This operation transmits 'data', which may contain unencrypted sensitive data from $@. | test3.cpp:322:16:322:24 | password2 | password2 | -| test3.cpp:341:4:341:7 | call to recv | test3.cpp:341:16:341:23 | password | test3.cpp:341:16:341:23 | password | This operation receives into 'password', which may put unencrypted sensitive data into $@. | test3.cpp:341:16:341:23 | password | password | -| test3.cpp:388:3:388:6 | call to recv | test3.cpp:388:15:388:22 | password | test3.cpp:388:15:388:22 | password | This operation receives into 'password', which may put unencrypted sensitive data into $@. | test3.cpp:388:15:388:22 | password | password | -| test3.cpp:414:3:414:6 | call to recv | test3.cpp:414:15:414:24 | password | test3.cpp:414:15:414:24 | password | This operation receives into 'password', which may put unencrypted sensitive data into $@. | test3.cpp:414:15:414:24 | password | password | -| test3.cpp:420:3:420:6 | call to recv | test3.cpp:420:15:420:24 | password | test3.cpp:420:15:420:24 | password | This operation receives into 'password', which may put unencrypted sensitive data into $@. | test3.cpp:420:15:420:24 | password | password | -| test3.cpp:431:2:431:6 | call to fgets | test3.cpp:431:8:431:15 | password | test3.cpp:431:8:431:15 | password | This operation receives into 'password', which may put unencrypted sensitive data into $@. | test3.cpp:431:8:431:15 | password | password | -| test3.cpp:507:2:507:5 | call to send | test3.cpp:507:14:507:39 | social_security_number | test3.cpp:507:14:507:39 | social_security_number | This operation transmits 'social_security_number', which may contain unencrypted sensitive data from $@. | test3.cpp:507:14:507:39 | social_security_number | social_security_number | -| test3.cpp:508:2:508:5 | call to send | test3.cpp:508:14:508:33 | socialSecurityNo | test3.cpp:508:14:508:33 | socialSecurityNo | This operation transmits 'socialSecurityNo', which may contain unencrypted sensitive data from $@. | test3.cpp:508:14:508:33 | socialSecurityNo | socialSecurityNo | -| test3.cpp:509:2:509:5 | call to send | test3.cpp:509:14:509:29 | homePostCode | test3.cpp:509:14:509:29 | homePostCode | This operation transmits 'homePostCode', which may contain unencrypted sensitive data from $@. | test3.cpp:509:14:509:29 | homePostCode | homePostCode | -| test3.cpp:510:2:510:5 | call to send | test3.cpp:510:14:510:28 | my_zip_code | test3.cpp:510:14:510:28 | my_zip_code | This operation transmits 'my_zip_code', which may contain unencrypted sensitive data from $@. | test3.cpp:510:14:510:28 | my_zip_code | my_zip_code | -| test3.cpp:511:2:511:5 | call to send | test3.cpp:511:14:511:26 | telephone | test3.cpp:511:14:511:26 | telephone | This operation transmits 'telephone', which may contain unencrypted sensitive data from $@. | test3.cpp:511:14:511:26 | telephone | telephone | -| test3.cpp:512:2:512:5 | call to send | test3.cpp:512:14:512:36 | mobile_phone_number | test3.cpp:512:14:512:36 | mobile_phone_number | This operation transmits 'mobile_phone_number', which may contain unencrypted sensitive data from $@. | test3.cpp:512:14:512:36 | mobile_phone_number | mobile_phone_number | -| test3.cpp:513:2:513:5 | call to send | test3.cpp:513:14:513:22 | email | test3.cpp:513:14:513:22 | email | This operation transmits 'email', which may contain unencrypted sensitive data from $@. | test3.cpp:513:14:513:22 | email | email | -| test3.cpp:514:2:514:5 | call to send | test3.cpp:514:14:514:38 | my_credit_card_number | test3.cpp:514:14:514:38 | my_credit_card_number | This operation transmits 'my_credit_card_number', which may contain unencrypted sensitive data from $@. | test3.cpp:514:14:514:38 | my_credit_card_number | my_credit_card_number | -| test3.cpp:515:2:515:5 | call to send | test3.cpp:515:14:515:35 | my_bank_account_no | test3.cpp:515:14:515:35 | my_bank_account_no | This operation transmits 'my_bank_account_no', which may contain unencrypted sensitive data from $@. | test3.cpp:515:14:515:35 | my_bank_account_no | my_bank_account_no | -| test3.cpp:516:2:516:5 | call to send | test3.cpp:516:14:516:29 | employerName | test3.cpp:516:14:516:29 | employerName | This operation transmits 'employerName', which may contain unencrypted sensitive data from $@. | test3.cpp:516:14:516:29 | employerName | employerName | -| test3.cpp:517:2:517:5 | call to send | test3.cpp:517:14:517:29 | medical_info | test3.cpp:517:14:517:29 | medical_info | This operation transmits 'medical_info', which may contain unencrypted sensitive data from $@. | test3.cpp:517:14:517:29 | medical_info | medical_info | -| test3.cpp:518:2:518:5 | call to send | test3.cpp:518:14:518:28 | license_key | test3.cpp:518:14:518:28 | license_key | This operation transmits 'license_key', which may contain unencrypted sensitive data from $@. | test3.cpp:518:14:518:28 | license_key | license_key | -| test3.cpp:527:3:527:6 | call to send | test3.cpp:526:44:526:54 | my_latitude | test3.cpp:527:15:527:20 | *buffer | This operation transmits '*buffer', which may contain unencrypted sensitive data from $@. | test3.cpp:526:44:526:54 | my_latitude | my_latitude | -| test3.cpp:533:3:533:6 | call to send | test3.cpp:532:45:532:58 | home_longitude | test3.cpp:533:15:533:20 | *buffer | This operation transmits '*buffer', which may contain unencrypted sensitive data from $@. | test3.cpp:532:45:532:58 | home_longitude | home_longitude | -| test3.cpp:552:3:552:6 | call to send | test3.cpp:551:47:551:58 | salaryString | test3.cpp:552:15:552:20 | *buffer | This operation transmits '*buffer', which may contain unencrypted sensitive data from $@. | test3.cpp:551:47:551:58 | salaryString | salaryString | -| test3.cpp:559:3:559:6 | call to send | test3.cpp:556:19:556:30 | salaryString | test3.cpp:559:15:559:20 | *buffer | This operation transmits '*buffer', which may contain unencrypted sensitive data from $@. | test3.cpp:556:19:556:30 | salaryString | salaryString | -| test3.cpp:572:2:572:5 | call to send | test3.cpp:571:8:571:21 | call to get_home_phone | test3.cpp:572:14:572:16 | str | This operation transmits 'str', which may contain unencrypted sensitive data from $@. | test3.cpp:571:8:571:21 | call to get_home_phone | call to get_home_phone | -| test3.cpp:578:2:578:5 | call to send | test3.cpp:577:8:577:23 | call to get_home_address | test3.cpp:578:14:578:16 | str | This operation transmits 'str', which may contain unencrypted sensitive data from $@. | test3.cpp:577:8:577:23 | call to get_home_address | call to get_home_address | diff --git a/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/test2.cpp b/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/test2.cpp index 9399a81274ee..950b4c62c745 100644 --- a/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/test2.cpp +++ b/cpp/ql/test/query-tests/Security/CWE/CWE-311/semmle/tests/test2.cpp @@ -110,3 +110,66 @@ void test_gets() gets(password); // $ Alert[cpp/cleartext-storage-buffer] // BAD } } + +namespace std +{ + template struct char_traits; + template class allocator; + + template> + class basic_string_view + { + public: + const CharT* data() const; + }; + + template, class Allocator = allocator> + class basic_string + { + public: + const CharT* data() const; + size_t size() const; + basic_string(); + basic_string& operator+=(CharT); + const CharT* c_str() const; + const CharT* begin() const; + const CharT* end() const; + + operator basic_string_view() const; + }; + + using string = basic_string; + using string_view = basic_string_view; +} + +struct StringCredentials +{ + std::string password; + std::string username; +}; + +void test_source_glvalue(FILE* log, const StringCredentials& credentials) +{ + const char* pw = credentials.password.c_str(); // $ Source[cpp/cleartext-storage-file] + fprintf(log, "%s", pw); // $ Alert[cpp/cleartext-storage-file] +} + +std::string copy_characters(std::string s) +{ + std::string result; + for (char ch : s) + result += ch; + return result; +} + +void test_character_iteration(FILE* log, const StringCredentials& credentials) +{ + std::string by_value = copy_characters(credentials.password); // $ Source[cpp/cleartext-storage-file] + fprintf(log, "%s", by_value.c_str()); // $ Alert[cpp/cleartext-storage-file] +} + +void test_reference(FILE* log, std::string s) { + const std::string& password = s; + const std::string& copy = password; // $ Source[cpp/cleartext-storage-file] + fprintf(log, "%s", copy.c_str()); // $ Alert[cpp/cleartext-storage-file] +} \ No newline at end of file diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs index 4bd0bb764a66..8c4fb0c79ea0 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs @@ -295,7 +295,7 @@ private void AddNetFrameworkDlls(ISet dllLocations, ISet string? runtimeLocation = null; - if (fileContent.IsNewProjectStructureUsed) + if (fileContent.IsSdkProjectStructureUsed) { runtimeLocation = Runtime.NetCoreRuntime; } diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FileContent.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FileContent.cs index f5199de1c13a..7a1a4502ce5e 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FileContent.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/FileContent.cs @@ -54,7 +54,7 @@ public bool IsAspNetCoreDetected { get { - return IsNewProjectStructureUsed && UseAspNetCoreDlls; + return IsSdkProjectStructureUsed && UseAspNetCoreDlls; } } @@ -102,13 +102,13 @@ public bool IsLegacyProjectStructureUsed } } - private bool isNewProjectStructureUsed = false; - public bool IsNewProjectStructureUsed + private bool isSdkProjectStructureUsed = false; + public bool IsSdkProjectStructureUsed { get { initialize.Run(); - return isNewProjectStructureUsed; + return isSdkProjectStructureUsed; } } @@ -228,7 +228,7 @@ private void DoInitialize() // Determine project structure: isLegacyProjectStructureUsed = isLegacyProjectStructureUsed || MicrosoftCSharpTargets().IsMatch(line); - isNewProjectStructureUsed = isNewProjectStructureUsed + isSdkProjectStructureUsed = isSdkProjectStructureUsed || ProjectSdk().IsMatch(line) || FrameworkReference().IsMatch(line); // TODO: we could also check `` @@ -240,6 +240,14 @@ private void DoInitialize() logger.LogDebug($"Failed to read file {file}, exception: {ex}"); } } + + logger.LogInfo("Finished reading project files."); + logger.LogInfo($"Legacy project structure usage detected: {isLegacyProjectStructureUsed}"); + logger.LogInfo($"SDK project structure usage detected: {isSdkProjectStructureUsed}"); + logger.LogInfo($"ASP.NET usage detected: {useAspNetCoreDlls}"); + logger.LogInfo($"Windows Forms usage detected: {useWindowsForms}"); + logger.LogInfo($"WPF usage detected: {useWpf}"); + logger.LogInfo($"Implicit usings enabled: {useImplicitUsings}"); } [GeneratedRegex("(?", RegexOptions.IgnoreCase | RegexOptions.Compiled | RegexOptions.Singleline)] diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/NugetPackageRestorer.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/NugetPackageRestorer.cs index fee72034781f..3d4972b5637b 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/NugetPackageRestorer.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/NugetPackageRestorer.cs @@ -148,10 +148,9 @@ public HashSet Restore() .Where(path => IsPathInSubfolder(path, legacyPackageDirectory.DirInfo.FullName, "tools")) .ToList(); - if (nugetPackageDllPaths.Count > 0) - { - logger.LogInfo($"Restored {nugetPackageDllPaths.Count} NuGet DLLs."); - } + + logger.LogInfo($"Restored {nugetPackageDllPaths.Count} NuGet DLLs from packages.config files using the NuGet CLI."); + if (excludedPaths.Count > 0) { logger.LogInfo($"Excluding {excludedPaths.Count} NuGet DLLs."); @@ -163,6 +162,13 @@ public HashSet Restore() } nugetPackageDllPaths.ExceptWith(excludedPaths); + + logger.LogInfo($"Using {nugetPackageDllPaths.Count} DLLs as dependency candidates from NuGet packages restored via the NuGet CLI based on packages.config files."); + foreach (var path in nugetPackageDllPaths) + { + logger.LogDebug($"Using NuGet DLL as dependency candidate: {path}"); + } + assemblyLookupLocations.UnionWith(nugetPackageDllPaths.Select(p => new AssemblyLookupLocation(p))); } catch (Exception exc) diff --git a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/SourceGenerators/DotnetSourceGeneratorBase.cs b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/SourceGenerators/DotnetSourceGeneratorBase.cs index 6a150e8d542a..74f5c40d8198 100644 --- a/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/SourceGenerators/DotnetSourceGeneratorBase.cs +++ b/csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/SourceGenerators/DotnetSourceGeneratorBase.cs @@ -39,7 +39,7 @@ protected override IEnumerable Run() return []; } - if (!fileContent.IsNewProjectStructureUsed) + if (!fileContent.IsSdkProjectStructureUsed) { logger.LogInfo($"Generating source files from {FileType} files is only supported for new (SDK-style) project files"); return []; diff --git a/csharp/extractor/Semmle.Extraction.Tests/FileContent.cs b/csharp/extractor/Semmle.Extraction.Tests/FileContent.cs index cbbf6ed4d24f..8d042fcc33b2 100644 --- a/csharp/extractor/Semmle.Extraction.Tests/FileContent.cs +++ b/csharp/extractor/Semmle.Extraction.Tests/FileContent.cs @@ -179,7 +179,7 @@ public void TestFileContent_LegacyProjectStructure() // Execute var isLegacy = fileContent.IsLegacyProjectStructureUsed; - var isNew = fileContent.IsNewProjectStructureUsed; + var isNew = fileContent.IsSdkProjectStructureUsed; // Verify Assert.True(isLegacy); @@ -204,7 +204,7 @@ public void TestFileContent_NewProjectStructure() // Execute var isLegacy = fileContent.IsLegacyProjectStructureUsed; - var isNew = fileContent.IsNewProjectStructureUsed; + var isNew = fileContent.IsSdkProjectStructureUsed; // Verify Assert.True(isNew); diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index c83e978d2234..dd073904894b 100644 --- a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-all -version: 1.7.78 +version: 1.7.79-dev groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index c77efd199e49..a1cccac9147f 100644 --- a/csharp/ql/campaigns/Solorigate/src/qlpack.yml +++ b/csharp/ql/campaigns/Solorigate/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-solorigate-queries -version: 1.7.78 +version: 1.7.79-dev groups: - csharp - solorigate diff --git a/csharp/ql/lib/change-notes/2026-10-06-property-pattern-flow.md b/csharp/ql/lib/change-notes/2026-10-06-property-pattern-flow.md new file mode 100644 index 000000000000..c8e42dcb6fe3 --- /dev/null +++ b/csharp/ql/lib/change-notes/2026-10-06-property-pattern-flow.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added support for data flow through property patterns in `is` expressions and `switch` cases. diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 987df33446ab..afcf5b37a610 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 7.4.2 +version: 7.4.3-dev groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll index a829eafa51cd..df0bef74f0ca 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowPrivate.qll @@ -1990,16 +1990,22 @@ class FieldOrProperty extends Assignable, Modifiable { } } -/** A string that is a reference to a late-bound target of a dynamic member access. */ +/** A member name used by a dynamic access or a property pattern without type information. */ class DynamicProperty extends string { - private DynamicMemberAccess dma; - - DynamicProperty() { this = dma.getLateBoundTargetName() } + DynamicProperty() { + this = any(DynamicMemberAccess dma).getLateBoundTargetName() + or + exists(PatternExpr qualifier, LabeledPatternExpr label | + propertyPatternQualifier(qualifier, label) and + qualifier.getType() instanceof NullType and + this = label.getLabel() + ) + } ContentSet getContentSet() { result.isDynamicProperty(this) } /** Gets an access of this dynamic property. */ - DynamicMemberAccess getAnAccess() { result = dma } + DynamicMemberAccess getAnAccess() { result.getLateBoundTargetName() = this } } private class InstanceFieldOrProperty extends FieldOrProperty { @@ -2308,6 +2314,40 @@ private predicate readStepDelegateCall(Node node1, ContentSet c, OutNode node2) ) } +private predicate propertyPatternQualifier(PatternExpr qualifier, LabeledPatternExpr label) { + qualifier.(RecursivePatternExpr).getPropertyPatterns().getPattern(_) = label + or + qualifier instanceof LabeledPatternExpr and + qualifier.(PropertyPatternExpr).getPattern(_) = label +} + +/** + * Holds if data can flow from `node1` to `node2` via a property pattern. + */ +private predicate fieldOrPropertyPatternRead(Node node1, ContentSet c, Node node2) { + exists(PatternExpr pattern, LabeledPatternExpr label | + node1.asExpr() = pattern and + propertyPatternQualifier(pattern, label) and + if pattern.getType() instanceof NullType + then c.isDynamicProperty(label.getLabel()) + else + exists(FieldOrProperty f | + c = f.getContentSet() and + f.getName() = label.getLabel() and + pattern.getType().(ValueOrRefType).hasMember(f) + ) + | + node2.asExpr() = label.(RecursivePatternExpr) + or + node2.asExpr() = label.(PropertyPatternExpr) + or + exists(AssignableDefinitions::PatternDefinition lvd | + node2.(AssignableDefinitionNode).getDefinition() = lvd and + label.(BindingPatternExpr).getVariableDeclExpr() = lvd.getDeclaration() + ) + ) +} + /** * Holds if data can flow from `node1` to `node2` via a read of content `c`. */ @@ -2319,6 +2359,8 @@ predicate readStep(Node node1, ContentSet c, Node node2) { or fieldOrPropertyRead(node1.asExpr(), c, node2.asExpr()) or + fieldOrPropertyPatternRead(node1, c, node2) + or dynamicPropertyRead(node1.asExpr(), c, node2.asExpr()) or node2.asExpr().(AwaitExpr).getExpr() = node1.asExpr() and diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index b8d043eaf4d0..ed46836464d2 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 1.11.0 +version: 1.11.1-dev groups: - csharp - queries diff --git a/csharp/ql/test/library-tests/dataflow/patterns/PatternFlow.expected b/csharp/ql/test/library-tests/dataflow/patterns/PatternFlow.expected index 4e4a41dfc62c..a9b4eb935298 100644 --- a/csharp/ql/test/library-tests/dataflow/patterns/PatternFlow.expected +++ b/csharp/ql/test/library-tests/dataflow/patterns/PatternFlow.expected @@ -1,6 +1,350 @@ models edges +| Patterns.cs:3:40:3:43 | Prop : Object | Patterns.cs:3:21:3:31 | this [Return] : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:3:40:3:43 | Prop : Object | Patterns.cs:3:21:3:31 | this [Return] : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:5:40:5:45 | Record : RecordClass [property Prop] : Object | Patterns.cs:5:21:5:26 | this [Return] : Nested [property Record, property Prop] : Object | provenance | | +| Patterns.cs:5:40:5:45 | Record : RecordClass [property Prop] : Object | Patterns.cs:5:21:5:26 | this [Return] : Nested [property Record, property Prop] : Object | provenance | | +| Patterns.cs:21:13:21:13 | access to local variable o : Object | Patterns.cs:22:33:22:33 | access to local variable o : Object | provenance | | +| Patterns.cs:21:13:21:13 | access to local variable o : Object | Patterns.cs:22:33:22:33 | access to local variable o : Object | provenance | | +| Patterns.cs:21:17:21:33 | call to method Source : Object | Patterns.cs:21:13:21:13 | access to local variable o : Object | provenance | | +| Patterns.cs:21:17:21:33 | call to method Source : Object | Patterns.cs:21:13:21:13 | access to local variable o : Object | provenance | | +| Patterns.cs:22:13:22:13 | access to local variable r : RecordClass [property Prop] : Object | Patterns.cs:23:18:23:47 | { ... } : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:22:13:22:13 | access to local variable r : RecordClass [property Prop] : Object | Patterns.cs:23:18:23:47 | { ... } : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:22:17:22:34 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:22:13:22:13 | access to local variable r : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:22:17:22:34 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:22:13:22:13 | access to local variable r : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:22:33:22:33 | access to local variable o : Object | Patterns.cs:3:40:3:43 | Prop : Object | provenance | | +| Patterns.cs:22:33:22:33 | access to local variable o : Object | Patterns.cs:3:40:3:43 | Prop : Object | provenance | | +| Patterns.cs:22:33:22:33 | access to local variable o : Object | Patterns.cs:22:17:22:34 | object creation of type RecordClass : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:22:33:22:33 | access to local variable o : Object | Patterns.cs:22:17:22:34 | object creation of type RecordClass : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:23:18:23:47 | { ... } : RecordClass [property Prop] : Object | Patterns.cs:25:18:25:18 | access to local variable p | provenance | | +| Patterns.cs:23:18:23:47 | { ... } : RecordClass [property Prop] : Object | Patterns.cs:25:18:25:18 | access to local variable p | provenance | | +| Patterns.cs:31:13:31:13 | access to local variable o : Object | Patterns.cs:32:33:32:33 | access to local variable o : Object | provenance | | +| Patterns.cs:31:13:31:13 | access to local variable o : Object | Patterns.cs:32:33:32:33 | access to local variable o : Object | provenance | | +| Patterns.cs:31:17:31:33 | call to method Source : Object | Patterns.cs:31:13:31:13 | access to local variable o : Object | provenance | | +| Patterns.cs:31:17:31:33 | call to method Source : Object | Patterns.cs:31:13:31:13 | access to local variable o : Object | provenance | | +| Patterns.cs:32:13:32:13 | access to local variable r : RecordClass [property Prop] : Object | Patterns.cs:35:18:35:47 | { ... } : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:32:13:32:13 | access to local variable r : RecordClass [property Prop] : Object | Patterns.cs:35:18:35:47 | { ... } : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:32:17:32:34 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:32:13:32:13 | access to local variable r : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:32:17:32:34 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:32:13:32:13 | access to local variable r : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:32:33:32:33 | access to local variable o : Object | Patterns.cs:3:40:3:43 | Prop : Object | provenance | | +| Patterns.cs:32:33:32:33 | access to local variable o : Object | Patterns.cs:3:40:3:43 | Prop : Object | provenance | | +| Patterns.cs:32:33:32:33 | access to local variable o : Object | Patterns.cs:32:17:32:34 | object creation of type RecordClass : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:32:33:32:33 | access to local variable o : Object | Patterns.cs:32:17:32:34 | object creation of type RecordClass : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:35:18:35:47 | { ... } : RecordClass [property Prop] : Object | Patterns.cs:36:22:36:22 | access to local variable p | provenance | | +| Patterns.cs:35:18:35:47 | { ... } : RecordClass [property Prop] : Object | Patterns.cs:36:22:36:22 | access to local variable p | provenance | | +| Patterns.cs:43:13:43:13 | access to local variable o : Object | Patterns.cs:44:44:44:44 | access to local variable o : Object | provenance | | +| Patterns.cs:43:13:43:13 | access to local variable o : Object | Patterns.cs:44:44:44:44 | access to local variable o : Object | provenance | | +| Patterns.cs:43:17:43:33 | call to method Source : Object | Patterns.cs:43:13:43:13 | access to local variable o : Object | provenance | | +| Patterns.cs:43:17:43:33 | call to method Source : Object | Patterns.cs:43:13:43:13 | access to local variable o : Object | provenance | | +| Patterns.cs:44:13:44:13 | access to local variable s : Nested [property Record, property Prop] : Object | Patterns.cs:45:18:45:54 | { ... } : Nested [property Record, property Prop] : Object | provenance | | +| Patterns.cs:44:13:44:13 | access to local variable s : Nested [property Record, property Prop] : Object | Patterns.cs:45:18:45:54 | { ... } : Nested [property Record, property Prop] : Object | provenance | | +| Patterns.cs:44:17:44:46 | object creation of type Nested : Nested [property Record, property Prop] : Object | Patterns.cs:44:13:44:13 | access to local variable s : Nested [property Record, property Prop] : Object | provenance | | +| Patterns.cs:44:17:44:46 | object creation of type Nested : Nested [property Record, property Prop] : Object | Patterns.cs:44:13:44:13 | access to local variable s : Nested [property Record, property Prop] : Object | provenance | | +| Patterns.cs:44:28:44:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:5:40:5:45 | Record : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:44:28:44:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:5:40:5:45 | Record : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:44:28:44:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:44:17:44:46 | object creation of type Nested : Nested [property Record, property Prop] : Object | provenance | | +| Patterns.cs:44:28:44:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:44:17:44:46 | object creation of type Nested : Nested [property Record, property Prop] : Object | provenance | | +| Patterns.cs:44:44:44:44 | access to local variable o : Object | Patterns.cs:3:40:3:43 | Prop : Object | provenance | | +| Patterns.cs:44:44:44:44 | access to local variable o : Object | Patterns.cs:3:40:3:43 | Prop : Object | provenance | | +| Patterns.cs:44:44:44:44 | access to local variable o : Object | Patterns.cs:44:28:44:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:44:44:44:44 | access to local variable o : Object | Patterns.cs:44:28:44:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:45:18:45:54 | { ... } : Nested [property Record, property Prop] : Object | Patterns.cs:45:35:45:52 | { ... } : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:45:18:45:54 | { ... } : Nested [property Record, property Prop] : Object | Patterns.cs:45:35:45:52 | { ... } : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:45:35:45:52 | { ... } : RecordClass [property Prop] : Object | Patterns.cs:47:18:47:18 | access to local variable p | provenance | | +| Patterns.cs:45:35:45:52 | { ... } : RecordClass [property Prop] : Object | Patterns.cs:47:18:47:18 | access to local variable p | provenance | | +| Patterns.cs:53:13:53:13 | access to local variable o : Object | Patterns.cs:54:44:54:44 | access to local variable o : Object | provenance | | +| Patterns.cs:53:13:53:13 | access to local variable o : Object | Patterns.cs:54:44:54:44 | access to local variable o : Object | provenance | | +| Patterns.cs:53:17:53:33 | call to method Source : Object | Patterns.cs:53:13:53:13 | access to local variable o : Object | provenance | | +| Patterns.cs:53:17:53:33 | call to method Source : Object | Patterns.cs:53:13:53:13 | access to local variable o : Object | provenance | | +| Patterns.cs:54:13:54:13 | access to local variable s : Nested [property Record, property Prop] : Object | Patterns.cs:55:18:55:49 | { ... } : Nested [property Record, property Prop] : Object | provenance | | +| Patterns.cs:54:13:54:13 | access to local variable s : Nested [property Record, property Prop] : Object | Patterns.cs:55:18:55:49 | { ... } : Nested [property Record, property Prop] : Object | provenance | | +| Patterns.cs:54:17:54:46 | object creation of type Nested : Nested [property Record, property Prop] : Object | Patterns.cs:54:13:54:13 | access to local variable s : Nested [property Record, property Prop] : Object | provenance | | +| Patterns.cs:54:17:54:46 | object creation of type Nested : Nested [property Record, property Prop] : Object | Patterns.cs:54:13:54:13 | access to local variable s : Nested [property Record, property Prop] : Object | provenance | | +| Patterns.cs:54:28:54:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:5:40:5:45 | Record : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:54:28:54:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:5:40:5:45 | Record : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:54:28:54:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:54:17:54:46 | object creation of type Nested : Nested [property Record, property Prop] : Object | provenance | | +| Patterns.cs:54:28:54:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:54:17:54:46 | object creation of type Nested : Nested [property Record, property Prop] : Object | provenance | | +| Patterns.cs:54:44:54:44 | access to local variable o : Object | Patterns.cs:3:40:3:43 | Prop : Object | provenance | | +| Patterns.cs:54:44:54:44 | access to local variable o : Object | Patterns.cs:3:40:3:43 | Prop : Object | provenance | | +| Patterns.cs:54:44:54:44 | access to local variable o : Object | Patterns.cs:54:28:54:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:54:44:54:44 | access to local variable o : Object | Patterns.cs:54:28:54:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:55:18:55:49 | { ... } : Nested [property Record, property Prop] : Object | Patterns.cs:55:27:55:32 | { ... } : null [property Prop] : Object | provenance | | +| Patterns.cs:55:18:55:49 | { ... } : Nested [property Record, property Prop] : Object | Patterns.cs:55:27:55:32 | { ... } : null [property Prop] : Object | provenance | | +| Patterns.cs:55:27:55:32 | { ... } : null [property Prop] : Object | Patterns.cs:57:18:57:18 | access to local variable p | provenance | | +| Patterns.cs:55:27:55:32 | { ... } : null [property Prop] : Object | Patterns.cs:57:18:57:18 | access to local variable p | provenance | | +| Patterns.cs:63:13:63:13 | access to local variable o : Object | Patterns.cs:64:41:64:41 | access to local variable o : Object | provenance | | +| Patterns.cs:63:13:63:13 | access to local variable o : Object | Patterns.cs:64:41:64:41 | access to local variable o : Object | provenance | | +| Patterns.cs:63:17:63:33 | call to method Source : Object | Patterns.cs:63:13:63:13 | access to local variable o : Object | provenance | | +| Patterns.cs:63:17:63:33 | call to method Source : Object | Patterns.cs:63:13:63:13 | access to local variable o : Object | provenance | | +| Patterns.cs:64:13:64:13 | access to local variable c : C1 [property Prop] : Object | Patterns.cs:65:18:65:46 | { ... } : C1 [property Prop] : Object | provenance | | +| Patterns.cs:64:13:64:13 | access to local variable c : C1 [property Prop] : Object | Patterns.cs:65:18:65:46 | { ... } : C1 [property Prop] : Object | provenance | | +| Patterns.cs:64:32:64:43 | { ..., ... } : C1 [property Prop] : Object | Patterns.cs:64:13:64:13 | access to local variable c : C1 [property Prop] : Object | provenance | | +| Patterns.cs:64:32:64:43 | { ..., ... } : C1 [property Prop] : Object | Patterns.cs:64:13:64:13 | access to local variable c : C1 [property Prop] : Object | provenance | | +| Patterns.cs:64:41:64:41 | access to local variable o : Object | Patterns.cs:64:32:64:43 | { ..., ... } : C1 [property Prop] : Object | provenance | | +| Patterns.cs:64:41:64:41 | access to local variable o : Object | Patterns.cs:64:32:64:43 | { ..., ... } : C1 [property Prop] : Object | provenance | | +| Patterns.cs:65:18:65:46 | { ... } : C1 [property Prop] : Object | Patterns.cs:67:18:67:18 | access to local variable p | provenance | | +| Patterns.cs:65:18:65:46 | { ... } : C1 [property Prop] : Object | Patterns.cs:67:18:67:18 | access to local variable p | provenance | | +| Patterns.cs:73:13:73:13 | access to local variable o : Object | Patterns.cs:74:44:74:44 | access to local variable o : Object | provenance | | +| Patterns.cs:73:13:73:13 | access to local variable o : Object | Patterns.cs:74:44:74:44 | access to local variable o : Object | provenance | | +| Patterns.cs:73:17:73:33 | call to method Source : Object | Patterns.cs:73:13:73:13 | access to local variable o : Object | provenance | | +| Patterns.cs:73:17:73:33 | call to method Source : Object | Patterns.cs:73:13:73:13 | access to local variable o : Object | provenance | | +| Patterns.cs:74:13:74:13 | access to local variable s : Nested [property Record, property Prop] : Object | Patterns.cs:75:18:75:65 | { ... } : Nested [property Record, property Prop] : Object | provenance | | +| Patterns.cs:74:13:74:13 | access to local variable s : Nested [property Record, property Prop] : Object | Patterns.cs:75:18:75:65 | { ... } : Nested [property Record, property Prop] : Object | provenance | | +| Patterns.cs:74:17:74:46 | object creation of type Nested : Nested [property Record, property Prop] : Object | Patterns.cs:74:13:74:13 | access to local variable s : Nested [property Record, property Prop] : Object | provenance | | +| Patterns.cs:74:17:74:46 | object creation of type Nested : Nested [property Record, property Prop] : Object | Patterns.cs:74:13:74:13 | access to local variable s : Nested [property Record, property Prop] : Object | provenance | | +| Patterns.cs:74:28:74:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:5:40:5:45 | Record : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:74:28:74:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:5:40:5:45 | Record : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:74:28:74:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:74:17:74:46 | object creation of type Nested : Nested [property Record, property Prop] : Object | provenance | | +| Patterns.cs:74:28:74:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:74:17:74:46 | object creation of type Nested : Nested [property Record, property Prop] : Object | provenance | | +| Patterns.cs:74:44:74:44 | access to local variable o : Object | Patterns.cs:3:40:3:43 | Prop : Object | provenance | | +| Patterns.cs:74:44:74:44 | access to local variable o : Object | Patterns.cs:3:40:3:43 | Prop : Object | provenance | | +| Patterns.cs:74:44:74:44 | access to local variable o : Object | Patterns.cs:74:28:74:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:74:44:74:44 | access to local variable o : Object | Patterns.cs:74:28:74:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:75:18:75:65 | { ... } : Nested [property Record, property Prop] : Object | Patterns.cs:77:18:77:18 | access to local variable r : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:75:18:75:65 | { ... } : Nested [property Record, property Prop] : Object | Patterns.cs:77:18:77:18 | access to local variable r : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:77:18:77:18 | access to local variable r : RecordClass [property Prop] : Object | Patterns.cs:77:18:77:23 | access to property Prop | provenance | | +| Patterns.cs:77:18:77:18 | access to local variable r : RecordClass [property Prop] : Object | Patterns.cs:77:18:77:23 | access to property Prop | provenance | | +| Patterns.cs:83:13:83:14 | access to local variable o1 : Object | Patterns.cs:85:45:85:46 | access to local variable o1 : Object | provenance | | +| Patterns.cs:83:13:83:14 | access to local variable o1 : Object | Patterns.cs:85:45:85:46 | access to local variable o1 : Object | provenance | | +| Patterns.cs:83:18:83:34 | call to method Source : Object | Patterns.cs:83:13:83:14 | access to local variable o1 : Object | provenance | | +| Patterns.cs:83:18:83:34 | call to method Source : Object | Patterns.cs:83:13:83:14 | access to local variable o1 : Object | provenance | | +| Patterns.cs:84:13:84:14 | access to local variable o2 : Object | Patterns.cs:85:51:85:52 | access to local variable o2 : Object | provenance | | +| Patterns.cs:84:13:84:14 | access to local variable o2 : Object | Patterns.cs:85:51:85:52 | access to local variable o2 : Object | provenance | | +| Patterns.cs:84:18:84:34 | call to method Source : Object | Patterns.cs:84:13:84:14 | access to local variable o2 : Object | provenance | | +| Patterns.cs:84:18:84:34 | call to method Source : Object | Patterns.cs:84:13:84:14 | access to local variable o2 : Object | provenance | | +| Patterns.cs:85:13:85:13 | access to local variable t : ValueTuple [field Item1, property Record, property Prop] : Object | Patterns.cs:88:18:88:63 | { ... } : ValueTuple [field Item1, property Record, property Prop] : Object | provenance | | +| Patterns.cs:85:13:85:13 | access to local variable t : ValueTuple [field Item1, property Record, property Prop] : Object | Patterns.cs:88:18:88:63 | { ... } : ValueTuple [field Item1, property Record, property Prop] : Object | provenance | | +| Patterns.cs:85:13:85:13 | access to local variable t : ValueTuple [field Item2] : Object | Patterns.cs:88:18:88:63 | { ... } : ValueTuple [field Item2] : Object | provenance | | +| Patterns.cs:85:13:85:13 | access to local variable t : ValueTuple [field Item2] : Object | Patterns.cs:88:18:88:63 | { ... } : ValueTuple [field Item2] : Object | provenance | | +| Patterns.cs:85:17:85:53 | (..., ...) : ValueTuple [field Item1, property Record, property Prop] : Object | Patterns.cs:85:13:85:13 | access to local variable t : ValueTuple [field Item1, property Record, property Prop] : Object | provenance | | +| Patterns.cs:85:17:85:53 | (..., ...) : ValueTuple [field Item1, property Record, property Prop] : Object | Patterns.cs:85:13:85:13 | access to local variable t : ValueTuple [field Item1, property Record, property Prop] : Object | provenance | | +| Patterns.cs:85:17:85:53 | (..., ...) : ValueTuple [field Item2] : Object | Patterns.cs:85:13:85:13 | access to local variable t : ValueTuple [field Item2] : Object | provenance | | +| Patterns.cs:85:17:85:53 | (..., ...) : ValueTuple [field Item2] : Object | Patterns.cs:85:13:85:13 | access to local variable t : ValueTuple [field Item2] : Object | provenance | | +| Patterns.cs:85:18:85:48 | object creation of type Nested : Nested [property Record, property Prop] : Object | Patterns.cs:85:17:85:53 | (..., ...) : ValueTuple [field Item1, property Record, property Prop] : Object | provenance | | +| Patterns.cs:85:18:85:48 | object creation of type Nested : Nested [property Record, property Prop] : Object | Patterns.cs:85:17:85:53 | (..., ...) : ValueTuple [field Item1, property Record, property Prop] : Object | provenance | | +| Patterns.cs:85:29:85:47 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:5:40:5:45 | Record : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:85:29:85:47 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:5:40:5:45 | Record : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:85:29:85:47 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:85:18:85:48 | object creation of type Nested : Nested [property Record, property Prop] : Object | provenance | | +| Patterns.cs:85:29:85:47 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:85:18:85:48 | object creation of type Nested : Nested [property Record, property Prop] : Object | provenance | | +| Patterns.cs:85:45:85:46 | access to local variable o1 : Object | Patterns.cs:3:40:3:43 | Prop : Object | provenance | | +| Patterns.cs:85:45:85:46 | access to local variable o1 : Object | Patterns.cs:3:40:3:43 | Prop : Object | provenance | | +| Patterns.cs:85:45:85:46 | access to local variable o1 : Object | Patterns.cs:85:29:85:47 | object creation of type RecordClass : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:85:45:85:46 | access to local variable o1 : Object | Patterns.cs:85:29:85:47 | object creation of type RecordClass : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:85:51:85:52 | access to local variable o2 : Object | Patterns.cs:85:17:85:53 | (..., ...) : ValueTuple [field Item2] : Object | provenance | | +| Patterns.cs:85:51:85:52 | access to local variable o2 : Object | Patterns.cs:85:17:85:53 | (..., ...) : ValueTuple [field Item2] : Object | provenance | | +| Patterns.cs:88:18:88:63 | { ... } : ValueTuple [field Item1, property Record, property Prop] : Object | Patterns.cs:88:19:88:55 | { ... } : Nested [property Record, property Prop] : Object | provenance | | +| Patterns.cs:88:18:88:63 | { ... } : ValueTuple [field Item1, property Record, property Prop] : Object | Patterns.cs:88:19:88:55 | { ... } : Nested [property Record, property Prop] : Object | provenance | | +| Patterns.cs:88:18:88:63 | { ... } : ValueTuple [field Item2] : Object | Patterns.cs:90:22:90:22 | access to local variable o | provenance | | +| Patterns.cs:88:18:88:63 | { ... } : ValueTuple [field Item2] : Object | Patterns.cs:90:22:90:22 | access to local variable o | provenance | | +| Patterns.cs:88:19:88:55 | { ... } : Nested [property Record, property Prop] : Object | Patterns.cs:88:36:88:53 | { ... } : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:88:19:88:55 | { ... } : Nested [property Record, property Prop] : Object | Patterns.cs:88:36:88:53 | { ... } : RecordClass [property Prop] : Object | provenance | | +| Patterns.cs:88:36:88:53 | { ... } : RecordClass [property Prop] : Object | Patterns.cs:89:22:89:22 | access to local variable p | provenance | | +| Patterns.cs:88:36:88:53 | { ... } : RecordClass [property Prop] : Object | Patterns.cs:89:22:89:22 | access to local variable p | provenance | | +| Patterns.cs:97:13:97:13 | access to local variable s : String | Patterns.cs:98:34:98:34 | access to local variable s : String | provenance | | +| Patterns.cs:97:13:97:13 | access to local variable s : String | Patterns.cs:98:34:98:34 | access to local variable s : String | provenance | | +| Patterns.cs:97:17:97:33 | call to method Source : String | Patterns.cs:97:13:97:13 | access to local variable s : String | provenance | | +| Patterns.cs:97:17:97:33 | call to method Source : String | Patterns.cs:97:13:97:13 | access to local variable s : String | provenance | | +| Patterns.cs:98:13:98:13 | access to local variable c : C2 [field Field] : String | Patterns.cs:99:18:99:39 | { ... } : C2 [field Field] : String | provenance | | +| Patterns.cs:98:13:98:13 | access to local variable c : C2 [field Field] : String | Patterns.cs:99:18:99:39 | { ... } : C2 [field Field] : String | provenance | | +| Patterns.cs:98:24:98:36 | { ..., ... } : C2 [field Field] : String | Patterns.cs:98:13:98:13 | access to local variable c : C2 [field Field] : String | provenance | | +| Patterns.cs:98:24:98:36 | { ..., ... } : C2 [field Field] : String | Patterns.cs:98:13:98:13 | access to local variable c : C2 [field Field] : String | provenance | | +| Patterns.cs:98:34:98:34 | access to local variable s : String | Patterns.cs:98:24:98:36 | { ..., ... } : C2 [field Field] : String | provenance | | +| Patterns.cs:98:34:98:34 | access to local variable s : String | Patterns.cs:98:24:98:36 | { ..., ... } : C2 [field Field] : String | provenance | | +| Patterns.cs:99:18:99:39 | { ... } : C2 [field Field] : String | Patterns.cs:101:18:101:18 | access to local variable p | provenance | | +| Patterns.cs:99:18:99:39 | { ... } : C2 [field Field] : String | Patterns.cs:101:18:101:18 | access to local variable p | provenance | | nodes +| Patterns.cs:3:21:3:31 | this [Return] : RecordClass [property Prop] : Object | semmle.label | this [Return] : RecordClass [property Prop] : Object | +| Patterns.cs:3:21:3:31 | this [Return] : RecordClass [property Prop] : Object | semmle.label | this [Return] : RecordClass [property Prop] : Object | +| Patterns.cs:3:40:3:43 | Prop : Object | semmle.label | Prop : Object | +| Patterns.cs:3:40:3:43 | Prop : Object | semmle.label | Prop : Object | +| Patterns.cs:5:21:5:26 | this [Return] : Nested [property Record, property Prop] : Object | semmle.label | this [Return] : Nested [property Record, property Prop] : Object | +| Patterns.cs:5:21:5:26 | this [Return] : Nested [property Record, property Prop] : Object | semmle.label | this [Return] : Nested [property Record, property Prop] : Object | +| Patterns.cs:5:40:5:45 | Record : RecordClass [property Prop] : Object | semmle.label | Record : RecordClass [property Prop] : Object | +| Patterns.cs:5:40:5:45 | Record : RecordClass [property Prop] : Object | semmle.label | Record : RecordClass [property Prop] : Object | +| Patterns.cs:21:13:21:13 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Patterns.cs:21:13:21:13 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Patterns.cs:21:17:21:33 | call to method Source : Object | semmle.label | call to method Source : Object | +| Patterns.cs:21:17:21:33 | call to method Source : Object | semmle.label | call to method Source : Object | +| Patterns.cs:22:13:22:13 | access to local variable r : RecordClass [property Prop] : Object | semmle.label | access to local variable r : RecordClass [property Prop] : Object | +| Patterns.cs:22:13:22:13 | access to local variable r : RecordClass [property Prop] : Object | semmle.label | access to local variable r : RecordClass [property Prop] : Object | +| Patterns.cs:22:17:22:34 | object creation of type RecordClass : RecordClass [property Prop] : Object | semmle.label | object creation of type RecordClass : RecordClass [property Prop] : Object | +| Patterns.cs:22:17:22:34 | object creation of type RecordClass : RecordClass [property Prop] : Object | semmle.label | object creation of type RecordClass : RecordClass [property Prop] : Object | +| Patterns.cs:22:33:22:33 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Patterns.cs:22:33:22:33 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Patterns.cs:23:18:23:47 | { ... } : RecordClass [property Prop] : Object | semmle.label | { ... } : RecordClass [property Prop] : Object | +| Patterns.cs:23:18:23:47 | { ... } : RecordClass [property Prop] : Object | semmle.label | { ... } : RecordClass [property Prop] : Object | +| Patterns.cs:25:18:25:18 | access to local variable p | semmle.label | access to local variable p | +| Patterns.cs:25:18:25:18 | access to local variable p | semmle.label | access to local variable p | +| Patterns.cs:31:13:31:13 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Patterns.cs:31:13:31:13 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Patterns.cs:31:17:31:33 | call to method Source : Object | semmle.label | call to method Source : Object | +| Patterns.cs:31:17:31:33 | call to method Source : Object | semmle.label | call to method Source : Object | +| Patterns.cs:32:13:32:13 | access to local variable r : RecordClass [property Prop] : Object | semmle.label | access to local variable r : RecordClass [property Prop] : Object | +| Patterns.cs:32:13:32:13 | access to local variable r : RecordClass [property Prop] : Object | semmle.label | access to local variable r : RecordClass [property Prop] : Object | +| Patterns.cs:32:17:32:34 | object creation of type RecordClass : RecordClass [property Prop] : Object | semmle.label | object creation of type RecordClass : RecordClass [property Prop] : Object | +| Patterns.cs:32:17:32:34 | object creation of type RecordClass : RecordClass [property Prop] : Object | semmle.label | object creation of type RecordClass : RecordClass [property Prop] : Object | +| Patterns.cs:32:33:32:33 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Patterns.cs:32:33:32:33 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Patterns.cs:35:18:35:47 | { ... } : RecordClass [property Prop] : Object | semmle.label | { ... } : RecordClass [property Prop] : Object | +| Patterns.cs:35:18:35:47 | { ... } : RecordClass [property Prop] : Object | semmle.label | { ... } : RecordClass [property Prop] : Object | +| Patterns.cs:36:22:36:22 | access to local variable p | semmle.label | access to local variable p | +| Patterns.cs:36:22:36:22 | access to local variable p | semmle.label | access to local variable p | +| Patterns.cs:43:13:43:13 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Patterns.cs:43:13:43:13 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Patterns.cs:43:17:43:33 | call to method Source : Object | semmle.label | call to method Source : Object | +| Patterns.cs:43:17:43:33 | call to method Source : Object | semmle.label | call to method Source : Object | +| Patterns.cs:44:13:44:13 | access to local variable s : Nested [property Record, property Prop] : Object | semmle.label | access to local variable s : Nested [property Record, property Prop] : Object | +| Patterns.cs:44:13:44:13 | access to local variable s : Nested [property Record, property Prop] : Object | semmle.label | access to local variable s : Nested [property Record, property Prop] : Object | +| Patterns.cs:44:17:44:46 | object creation of type Nested : Nested [property Record, property Prop] : Object | semmle.label | object creation of type Nested : Nested [property Record, property Prop] : Object | +| Patterns.cs:44:17:44:46 | object creation of type Nested : Nested [property Record, property Prop] : Object | semmle.label | object creation of type Nested : Nested [property Record, property Prop] : Object | +| Patterns.cs:44:28:44:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | semmle.label | object creation of type RecordClass : RecordClass [property Prop] : Object | +| Patterns.cs:44:28:44:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | semmle.label | object creation of type RecordClass : RecordClass [property Prop] : Object | +| Patterns.cs:44:44:44:44 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Patterns.cs:44:44:44:44 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Patterns.cs:45:18:45:54 | { ... } : Nested [property Record, property Prop] : Object | semmle.label | { ... } : Nested [property Record, property Prop] : Object | +| Patterns.cs:45:18:45:54 | { ... } : Nested [property Record, property Prop] : Object | semmle.label | { ... } : Nested [property Record, property Prop] : Object | +| Patterns.cs:45:35:45:52 | { ... } : RecordClass [property Prop] : Object | semmle.label | { ... } : RecordClass [property Prop] : Object | +| Patterns.cs:45:35:45:52 | { ... } : RecordClass [property Prop] : Object | semmle.label | { ... } : RecordClass [property Prop] : Object | +| Patterns.cs:47:18:47:18 | access to local variable p | semmle.label | access to local variable p | +| Patterns.cs:47:18:47:18 | access to local variable p | semmle.label | access to local variable p | +| Patterns.cs:53:13:53:13 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Patterns.cs:53:13:53:13 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Patterns.cs:53:17:53:33 | call to method Source : Object | semmle.label | call to method Source : Object | +| Patterns.cs:53:17:53:33 | call to method Source : Object | semmle.label | call to method Source : Object | +| Patterns.cs:54:13:54:13 | access to local variable s : Nested [property Record, property Prop] : Object | semmle.label | access to local variable s : Nested [property Record, property Prop] : Object | +| Patterns.cs:54:13:54:13 | access to local variable s : Nested [property Record, property Prop] : Object | semmle.label | access to local variable s : Nested [property Record, property Prop] : Object | +| Patterns.cs:54:17:54:46 | object creation of type Nested : Nested [property Record, property Prop] : Object | semmle.label | object creation of type Nested : Nested [property Record, property Prop] : Object | +| Patterns.cs:54:17:54:46 | object creation of type Nested : Nested [property Record, property Prop] : Object | semmle.label | object creation of type Nested : Nested [property Record, property Prop] : Object | +| Patterns.cs:54:28:54:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | semmle.label | object creation of type RecordClass : RecordClass [property Prop] : Object | +| Patterns.cs:54:28:54:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | semmle.label | object creation of type RecordClass : RecordClass [property Prop] : Object | +| Patterns.cs:54:44:54:44 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Patterns.cs:54:44:54:44 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Patterns.cs:55:18:55:49 | { ... } : Nested [property Record, property Prop] : Object | semmle.label | { ... } : Nested [property Record, property Prop] : Object | +| Patterns.cs:55:18:55:49 | { ... } : Nested [property Record, property Prop] : Object | semmle.label | { ... } : Nested [property Record, property Prop] : Object | +| Patterns.cs:55:27:55:32 | { ... } : null [property Prop] : Object | semmle.label | { ... } : null [property Prop] : Object | +| Patterns.cs:55:27:55:32 | { ... } : null [property Prop] : Object | semmle.label | { ... } : null [property Prop] : Object | +| Patterns.cs:57:18:57:18 | access to local variable p | semmle.label | access to local variable p | +| Patterns.cs:57:18:57:18 | access to local variable p | semmle.label | access to local variable p | +| Patterns.cs:63:13:63:13 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Patterns.cs:63:13:63:13 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Patterns.cs:63:17:63:33 | call to method Source : Object | semmle.label | call to method Source : Object | +| Patterns.cs:63:17:63:33 | call to method Source : Object | semmle.label | call to method Source : Object | +| Patterns.cs:64:13:64:13 | access to local variable c : C1 [property Prop] : Object | semmle.label | access to local variable c : C1 [property Prop] : Object | +| Patterns.cs:64:13:64:13 | access to local variable c : C1 [property Prop] : Object | semmle.label | access to local variable c : C1 [property Prop] : Object | +| Patterns.cs:64:32:64:43 | { ..., ... } : C1 [property Prop] : Object | semmle.label | { ..., ... } : C1 [property Prop] : Object | +| Patterns.cs:64:32:64:43 | { ..., ... } : C1 [property Prop] : Object | semmle.label | { ..., ... } : C1 [property Prop] : Object | +| Patterns.cs:64:41:64:41 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Patterns.cs:64:41:64:41 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Patterns.cs:65:18:65:46 | { ... } : C1 [property Prop] : Object | semmle.label | { ... } : C1 [property Prop] : Object | +| Patterns.cs:65:18:65:46 | { ... } : C1 [property Prop] : Object | semmle.label | { ... } : C1 [property Prop] : Object | +| Patterns.cs:67:18:67:18 | access to local variable p | semmle.label | access to local variable p | +| Patterns.cs:67:18:67:18 | access to local variable p | semmle.label | access to local variable p | +| Patterns.cs:73:13:73:13 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Patterns.cs:73:13:73:13 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Patterns.cs:73:17:73:33 | call to method Source : Object | semmle.label | call to method Source : Object | +| Patterns.cs:73:17:73:33 | call to method Source : Object | semmle.label | call to method Source : Object | +| Patterns.cs:74:13:74:13 | access to local variable s : Nested [property Record, property Prop] : Object | semmle.label | access to local variable s : Nested [property Record, property Prop] : Object | +| Patterns.cs:74:13:74:13 | access to local variable s : Nested [property Record, property Prop] : Object | semmle.label | access to local variable s : Nested [property Record, property Prop] : Object | +| Patterns.cs:74:17:74:46 | object creation of type Nested : Nested [property Record, property Prop] : Object | semmle.label | object creation of type Nested : Nested [property Record, property Prop] : Object | +| Patterns.cs:74:17:74:46 | object creation of type Nested : Nested [property Record, property Prop] : Object | semmle.label | object creation of type Nested : Nested [property Record, property Prop] : Object | +| Patterns.cs:74:28:74:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | semmle.label | object creation of type RecordClass : RecordClass [property Prop] : Object | +| Patterns.cs:74:28:74:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | semmle.label | object creation of type RecordClass : RecordClass [property Prop] : Object | +| Patterns.cs:74:44:74:44 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Patterns.cs:74:44:74:44 | access to local variable o : Object | semmle.label | access to local variable o : Object | +| Patterns.cs:75:18:75:65 | { ... } : Nested [property Record, property Prop] : Object | semmle.label | { ... } : Nested [property Record, property Prop] : Object | +| Patterns.cs:75:18:75:65 | { ... } : Nested [property Record, property Prop] : Object | semmle.label | { ... } : Nested [property Record, property Prop] : Object | +| Patterns.cs:77:18:77:18 | access to local variable r : RecordClass [property Prop] : Object | semmle.label | access to local variable r : RecordClass [property Prop] : Object | +| Patterns.cs:77:18:77:18 | access to local variable r : RecordClass [property Prop] : Object | semmle.label | access to local variable r : RecordClass [property Prop] : Object | +| Patterns.cs:77:18:77:23 | access to property Prop | semmle.label | access to property Prop | +| Patterns.cs:77:18:77:23 | access to property Prop | semmle.label | access to property Prop | +| Patterns.cs:83:13:83:14 | access to local variable o1 : Object | semmle.label | access to local variable o1 : Object | +| Patterns.cs:83:13:83:14 | access to local variable o1 : Object | semmle.label | access to local variable o1 : Object | +| Patterns.cs:83:18:83:34 | call to method Source : Object | semmle.label | call to method Source : Object | +| Patterns.cs:83:18:83:34 | call to method Source : Object | semmle.label | call to method Source : Object | +| Patterns.cs:84:13:84:14 | access to local variable o2 : Object | semmle.label | access to local variable o2 : Object | +| Patterns.cs:84:13:84:14 | access to local variable o2 : Object | semmle.label | access to local variable o2 : Object | +| Patterns.cs:84:18:84:34 | call to method Source : Object | semmle.label | call to method Source : Object | +| Patterns.cs:84:18:84:34 | call to method Source : Object | semmle.label | call to method Source : Object | +| Patterns.cs:85:13:85:13 | access to local variable t : ValueTuple [field Item1, property Record, property Prop] : Object | semmle.label | access to local variable t : ValueTuple [field Item1, property Record, property Prop] : Object | +| Patterns.cs:85:13:85:13 | access to local variable t : ValueTuple [field Item1, property Record, property Prop] : Object | semmle.label | access to local variable t : ValueTuple [field Item1, property Record, property Prop] : Object | +| Patterns.cs:85:13:85:13 | access to local variable t : ValueTuple [field Item2] : Object | semmle.label | access to local variable t : ValueTuple [field Item2] : Object | +| Patterns.cs:85:13:85:13 | access to local variable t : ValueTuple [field Item2] : Object | semmle.label | access to local variable t : ValueTuple [field Item2] : Object | +| Patterns.cs:85:17:85:53 | (..., ...) : ValueTuple [field Item1, property Record, property Prop] : Object | semmle.label | (..., ...) : ValueTuple [field Item1, property Record, property Prop] : Object | +| Patterns.cs:85:17:85:53 | (..., ...) : ValueTuple [field Item1, property Record, property Prop] : Object | semmle.label | (..., ...) : ValueTuple [field Item1, property Record, property Prop] : Object | +| Patterns.cs:85:17:85:53 | (..., ...) : ValueTuple [field Item2] : Object | semmle.label | (..., ...) : ValueTuple [field Item2] : Object | +| Patterns.cs:85:17:85:53 | (..., ...) : ValueTuple [field Item2] : Object | semmle.label | (..., ...) : ValueTuple [field Item2] : Object | +| Patterns.cs:85:18:85:48 | object creation of type Nested : Nested [property Record, property Prop] : Object | semmle.label | object creation of type Nested : Nested [property Record, property Prop] : Object | +| Patterns.cs:85:18:85:48 | object creation of type Nested : Nested [property Record, property Prop] : Object | semmle.label | object creation of type Nested : Nested [property Record, property Prop] : Object | +| Patterns.cs:85:29:85:47 | object creation of type RecordClass : RecordClass [property Prop] : Object | semmle.label | object creation of type RecordClass : RecordClass [property Prop] : Object | +| Patterns.cs:85:29:85:47 | object creation of type RecordClass : RecordClass [property Prop] : Object | semmle.label | object creation of type RecordClass : RecordClass [property Prop] : Object | +| Patterns.cs:85:45:85:46 | access to local variable o1 : Object | semmle.label | access to local variable o1 : Object | +| Patterns.cs:85:45:85:46 | access to local variable o1 : Object | semmle.label | access to local variable o1 : Object | +| Patterns.cs:85:51:85:52 | access to local variable o2 : Object | semmle.label | access to local variable o2 : Object | +| Patterns.cs:85:51:85:52 | access to local variable o2 : Object | semmle.label | access to local variable o2 : Object | +| Patterns.cs:88:18:88:63 | { ... } : ValueTuple [field Item1, property Record, property Prop] : Object | semmle.label | { ... } : ValueTuple [field Item1, property Record, property Prop] : Object | +| Patterns.cs:88:18:88:63 | { ... } : ValueTuple [field Item1, property Record, property Prop] : Object | semmle.label | { ... } : ValueTuple [field Item1, property Record, property Prop] : Object | +| Patterns.cs:88:18:88:63 | { ... } : ValueTuple [field Item2] : Object | semmle.label | { ... } : ValueTuple [field Item2] : Object | +| Patterns.cs:88:18:88:63 | { ... } : ValueTuple [field Item2] : Object | semmle.label | { ... } : ValueTuple [field Item2] : Object | +| Patterns.cs:88:19:88:55 | { ... } : Nested [property Record, property Prop] : Object | semmle.label | { ... } : Nested [property Record, property Prop] : Object | +| Patterns.cs:88:19:88:55 | { ... } : Nested [property Record, property Prop] : Object | semmle.label | { ... } : Nested [property Record, property Prop] : Object | +| Patterns.cs:88:36:88:53 | { ... } : RecordClass [property Prop] : Object | semmle.label | { ... } : RecordClass [property Prop] : Object | +| Patterns.cs:88:36:88:53 | { ... } : RecordClass [property Prop] : Object | semmle.label | { ... } : RecordClass [property Prop] : Object | +| Patterns.cs:89:22:89:22 | access to local variable p | semmle.label | access to local variable p | +| Patterns.cs:89:22:89:22 | access to local variable p | semmle.label | access to local variable p | +| Patterns.cs:90:22:90:22 | access to local variable o | semmle.label | access to local variable o | +| Patterns.cs:90:22:90:22 | access to local variable o | semmle.label | access to local variable o | +| Patterns.cs:97:13:97:13 | access to local variable s : String | semmle.label | access to local variable s : String | +| Patterns.cs:97:13:97:13 | access to local variable s : String | semmle.label | access to local variable s : String | +| Patterns.cs:97:17:97:33 | call to method Source : String | semmle.label | call to method Source : String | +| Patterns.cs:97:17:97:33 | call to method Source : String | semmle.label | call to method Source : String | +| Patterns.cs:98:13:98:13 | access to local variable c : C2 [field Field] : String | semmle.label | access to local variable c : C2 [field Field] : String | +| Patterns.cs:98:13:98:13 | access to local variable c : C2 [field Field] : String | semmle.label | access to local variable c : C2 [field Field] : String | +| Patterns.cs:98:24:98:36 | { ..., ... } : C2 [field Field] : String | semmle.label | { ..., ... } : C2 [field Field] : String | +| Patterns.cs:98:24:98:36 | { ..., ... } : C2 [field Field] : String | semmle.label | { ..., ... } : C2 [field Field] : String | +| Patterns.cs:98:34:98:34 | access to local variable s : String | semmle.label | access to local variable s : String | +| Patterns.cs:98:34:98:34 | access to local variable s : String | semmle.label | access to local variable s : String | +| Patterns.cs:99:18:99:39 | { ... } : C2 [field Field] : String | semmle.label | { ... } : C2 [field Field] : String | +| Patterns.cs:99:18:99:39 | { ... } : C2 [field Field] : String | semmle.label | { ... } : C2 [field Field] : String | +| Patterns.cs:101:18:101:18 | access to local variable p | semmle.label | access to local variable p | +| Patterns.cs:101:18:101:18 | access to local variable p | semmle.label | access to local variable p | subpaths +| Patterns.cs:22:33:22:33 | access to local variable o : Object | Patterns.cs:3:40:3:43 | Prop : Object | Patterns.cs:3:21:3:31 | this [Return] : RecordClass [property Prop] : Object | Patterns.cs:22:17:22:34 | object creation of type RecordClass : RecordClass [property Prop] : Object | +| Patterns.cs:22:33:22:33 | access to local variable o : Object | Patterns.cs:3:40:3:43 | Prop : Object | Patterns.cs:3:21:3:31 | this [Return] : RecordClass [property Prop] : Object | Patterns.cs:22:17:22:34 | object creation of type RecordClass : RecordClass [property Prop] : Object | +| Patterns.cs:32:33:32:33 | access to local variable o : Object | Patterns.cs:3:40:3:43 | Prop : Object | Patterns.cs:3:21:3:31 | this [Return] : RecordClass [property Prop] : Object | Patterns.cs:32:17:32:34 | object creation of type RecordClass : RecordClass [property Prop] : Object | +| Patterns.cs:32:33:32:33 | access to local variable o : Object | Patterns.cs:3:40:3:43 | Prop : Object | Patterns.cs:3:21:3:31 | this [Return] : RecordClass [property Prop] : Object | Patterns.cs:32:17:32:34 | object creation of type RecordClass : RecordClass [property Prop] : Object | +| Patterns.cs:44:28:44:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:5:40:5:45 | Record : RecordClass [property Prop] : Object | Patterns.cs:5:21:5:26 | this [Return] : Nested [property Record, property Prop] : Object | Patterns.cs:44:17:44:46 | object creation of type Nested : Nested [property Record, property Prop] : Object | +| Patterns.cs:44:28:44:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:5:40:5:45 | Record : RecordClass [property Prop] : Object | Patterns.cs:5:21:5:26 | this [Return] : Nested [property Record, property Prop] : Object | Patterns.cs:44:17:44:46 | object creation of type Nested : Nested [property Record, property Prop] : Object | +| Patterns.cs:44:44:44:44 | access to local variable o : Object | Patterns.cs:3:40:3:43 | Prop : Object | Patterns.cs:3:21:3:31 | this [Return] : RecordClass [property Prop] : Object | Patterns.cs:44:28:44:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | +| Patterns.cs:44:44:44:44 | access to local variable o : Object | Patterns.cs:3:40:3:43 | Prop : Object | Patterns.cs:3:21:3:31 | this [Return] : RecordClass [property Prop] : Object | Patterns.cs:44:28:44:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | +| Patterns.cs:54:28:54:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:5:40:5:45 | Record : RecordClass [property Prop] : Object | Patterns.cs:5:21:5:26 | this [Return] : Nested [property Record, property Prop] : Object | Patterns.cs:54:17:54:46 | object creation of type Nested : Nested [property Record, property Prop] : Object | +| Patterns.cs:54:28:54:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:5:40:5:45 | Record : RecordClass [property Prop] : Object | Patterns.cs:5:21:5:26 | this [Return] : Nested [property Record, property Prop] : Object | Patterns.cs:54:17:54:46 | object creation of type Nested : Nested [property Record, property Prop] : Object | +| Patterns.cs:54:44:54:44 | access to local variable o : Object | Patterns.cs:3:40:3:43 | Prop : Object | Patterns.cs:3:21:3:31 | this [Return] : RecordClass [property Prop] : Object | Patterns.cs:54:28:54:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | +| Patterns.cs:54:44:54:44 | access to local variable o : Object | Patterns.cs:3:40:3:43 | Prop : Object | Patterns.cs:3:21:3:31 | this [Return] : RecordClass [property Prop] : Object | Patterns.cs:54:28:54:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | +| Patterns.cs:74:28:74:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:5:40:5:45 | Record : RecordClass [property Prop] : Object | Patterns.cs:5:21:5:26 | this [Return] : Nested [property Record, property Prop] : Object | Patterns.cs:74:17:74:46 | object creation of type Nested : Nested [property Record, property Prop] : Object | +| Patterns.cs:74:28:74:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:5:40:5:45 | Record : RecordClass [property Prop] : Object | Patterns.cs:5:21:5:26 | this [Return] : Nested [property Record, property Prop] : Object | Patterns.cs:74:17:74:46 | object creation of type Nested : Nested [property Record, property Prop] : Object | +| Patterns.cs:74:44:74:44 | access to local variable o : Object | Patterns.cs:3:40:3:43 | Prop : Object | Patterns.cs:3:21:3:31 | this [Return] : RecordClass [property Prop] : Object | Patterns.cs:74:28:74:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | +| Patterns.cs:74:44:74:44 | access to local variable o : Object | Patterns.cs:3:40:3:43 | Prop : Object | Patterns.cs:3:21:3:31 | this [Return] : RecordClass [property Prop] : Object | Patterns.cs:74:28:74:45 | object creation of type RecordClass : RecordClass [property Prop] : Object | +| Patterns.cs:85:29:85:47 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:5:40:5:45 | Record : RecordClass [property Prop] : Object | Patterns.cs:5:21:5:26 | this [Return] : Nested [property Record, property Prop] : Object | Patterns.cs:85:18:85:48 | object creation of type Nested : Nested [property Record, property Prop] : Object | +| Patterns.cs:85:29:85:47 | object creation of type RecordClass : RecordClass [property Prop] : Object | Patterns.cs:5:40:5:45 | Record : RecordClass [property Prop] : Object | Patterns.cs:5:21:5:26 | this [Return] : Nested [property Record, property Prop] : Object | Patterns.cs:85:18:85:48 | object creation of type Nested : Nested [property Record, property Prop] : Object | +| Patterns.cs:85:45:85:46 | access to local variable o1 : Object | Patterns.cs:3:40:3:43 | Prop : Object | Patterns.cs:3:21:3:31 | this [Return] : RecordClass [property Prop] : Object | Patterns.cs:85:29:85:47 | object creation of type RecordClass : RecordClass [property Prop] : Object | +| Patterns.cs:85:45:85:46 | access to local variable o1 : Object | Patterns.cs:3:40:3:43 | Prop : Object | Patterns.cs:3:21:3:31 | this [Return] : RecordClass [property Prop] : Object | Patterns.cs:85:29:85:47 | object creation of type RecordClass : RecordClass [property Prop] : Object | testFailures #select +| Patterns.cs:25:18:25:18 | access to local variable p | Patterns.cs:21:17:21:33 | call to method Source : Object | Patterns.cs:25:18:25:18 | access to local variable p | $@ | Patterns.cs:21:17:21:33 | call to method Source : Object | call to method Source : Object | +| Patterns.cs:25:18:25:18 | access to local variable p | Patterns.cs:21:17:21:33 | call to method Source : Object | Patterns.cs:25:18:25:18 | access to local variable p | $@ | Patterns.cs:21:17:21:33 | call to method Source : Object | call to method Source : Object | +| Patterns.cs:36:22:36:22 | access to local variable p | Patterns.cs:31:17:31:33 | call to method Source : Object | Patterns.cs:36:22:36:22 | access to local variable p | $@ | Patterns.cs:31:17:31:33 | call to method Source : Object | call to method Source : Object | +| Patterns.cs:36:22:36:22 | access to local variable p | Patterns.cs:31:17:31:33 | call to method Source : Object | Patterns.cs:36:22:36:22 | access to local variable p | $@ | Patterns.cs:31:17:31:33 | call to method Source : Object | call to method Source : Object | +| Patterns.cs:47:18:47:18 | access to local variable p | Patterns.cs:43:17:43:33 | call to method Source : Object | Patterns.cs:47:18:47:18 | access to local variable p | $@ | Patterns.cs:43:17:43:33 | call to method Source : Object | call to method Source : Object | +| Patterns.cs:47:18:47:18 | access to local variable p | Patterns.cs:43:17:43:33 | call to method Source : Object | Patterns.cs:47:18:47:18 | access to local variable p | $@ | Patterns.cs:43:17:43:33 | call to method Source : Object | call to method Source : Object | +| Patterns.cs:57:18:57:18 | access to local variable p | Patterns.cs:53:17:53:33 | call to method Source : Object | Patterns.cs:57:18:57:18 | access to local variable p | $@ | Patterns.cs:53:17:53:33 | call to method Source : Object | call to method Source : Object | +| Patterns.cs:57:18:57:18 | access to local variable p | Patterns.cs:53:17:53:33 | call to method Source : Object | Patterns.cs:57:18:57:18 | access to local variable p | $@ | Patterns.cs:53:17:53:33 | call to method Source : Object | call to method Source : Object | +| Patterns.cs:67:18:67:18 | access to local variable p | Patterns.cs:63:17:63:33 | call to method Source : Object | Patterns.cs:67:18:67:18 | access to local variable p | $@ | Patterns.cs:63:17:63:33 | call to method Source : Object | call to method Source : Object | +| Patterns.cs:67:18:67:18 | access to local variable p | Patterns.cs:63:17:63:33 | call to method Source : Object | Patterns.cs:67:18:67:18 | access to local variable p | $@ | Patterns.cs:63:17:63:33 | call to method Source : Object | call to method Source : Object | +| Patterns.cs:77:18:77:23 | access to property Prop | Patterns.cs:73:17:73:33 | call to method Source : Object | Patterns.cs:77:18:77:23 | access to property Prop | $@ | Patterns.cs:73:17:73:33 | call to method Source : Object | call to method Source : Object | +| Patterns.cs:77:18:77:23 | access to property Prop | Patterns.cs:73:17:73:33 | call to method Source : Object | Patterns.cs:77:18:77:23 | access to property Prop | $@ | Patterns.cs:73:17:73:33 | call to method Source : Object | call to method Source : Object | +| Patterns.cs:89:22:89:22 | access to local variable p | Patterns.cs:83:18:83:34 | call to method Source : Object | Patterns.cs:89:22:89:22 | access to local variable p | $@ | Patterns.cs:83:18:83:34 | call to method Source : Object | call to method Source : Object | +| Patterns.cs:89:22:89:22 | access to local variable p | Patterns.cs:83:18:83:34 | call to method Source : Object | Patterns.cs:89:22:89:22 | access to local variable p | $@ | Patterns.cs:83:18:83:34 | call to method Source : Object | call to method Source : Object | +| Patterns.cs:90:22:90:22 | access to local variable o | Patterns.cs:84:18:84:34 | call to method Source : Object | Patterns.cs:90:22:90:22 | access to local variable o | $@ | Patterns.cs:84:18:84:34 | call to method Source : Object | call to method Source : Object | +| Patterns.cs:90:22:90:22 | access to local variable o | Patterns.cs:84:18:84:34 | call to method Source : Object | Patterns.cs:90:22:90:22 | access to local variable o | $@ | Patterns.cs:84:18:84:34 | call to method Source : Object | call to method Source : Object | +| Patterns.cs:101:18:101:18 | access to local variable p | Patterns.cs:97:17:97:33 | call to method Source : String | Patterns.cs:101:18:101:18 | access to local variable p | $@ | Patterns.cs:97:17:97:33 | call to method Source : String | call to method Source : String | +| Patterns.cs:101:18:101:18 | access to local variable p | Patterns.cs:97:17:97:33 | call to method Source : String | Patterns.cs:101:18:101:18 | access to local variable p | $@ | Patterns.cs:97:17:97:33 | call to method Source : String | call to method Source : String | diff --git a/csharp/ql/test/library-tests/dataflow/patterns/Patterns.cs b/csharp/ql/test/library-tests/dataflow/patterns/Patterns.cs index d3247e1351b8..7f655a7d620b 100644 --- a/csharp/ql/test/library-tests/dataflow/patterns/Patterns.cs +++ b/csharp/ql/test/library-tests/dataflow/patterns/Patterns.cs @@ -1,29 +1,39 @@ using System; -public record class RecordClass2(object Prop) { } +public record class RecordClass(object Prop) { } -public record class Nested(RecordClass2 Record) { } +public record class Nested(RecordClass Record) { } + +public class C1 +{ + public T Prop { get; set; } +} + +public class C2 +{ + public string Field; +} public class RecordPatterns { private void M1() { var o = Source(1); - var r = new RecordClass2(o); - if (r is RecordClass2 { Prop: object p }) + var r = new RecordClass(o); + if (r is RecordClass { Prop: object p }) { - Sink(p); // $ MISSING: hasValueFlow=1 + Sink(p); // $ hasValueFlow=1 } } private void M2() { var o = Source(2); - var r = new RecordClass2(o); + var r = new RecordClass(o); switch (r) { - case RecordClass2 { Prop: object p }: - Sink(p); // $ MISSING: hasValueFlow=2 + case RecordClass { Prop: object p }: + Sink(p); // $ hasValueFlow=2 break; } } @@ -31,20 +41,64 @@ private void M2() private void M3() { var o = Source(3); - var s = new Nested(new RecordClass2(o)); + var s = new Nested(new RecordClass(o)); if (s is Nested { Record: { Prop: object p } }) { - Sink(p); // $ MISSING: hasValueFlow=3 + Sink(p); // $ hasValueFlow=3 } } private void M4() { var o = Source(4); - var s = new Nested(new RecordClass2(o)); + var s = new Nested(new RecordClass(o)); if (s is Nested { Record.Prop: object p }) { - Sink(p); // $ MISSING: hasValueFlow=4 + Sink(p); // $ hasValueFlow=4 + } + } + + public void M5() + { + var o = Source(5); + var c = new C1 { Prop = o }; + if (c is C1 { Prop: object p }) + { + Sink(p); // $ hasValueFlow=5 + } + } + + public void M6() + { + var o = Source(6); + var s = new Nested(new RecordClass(o)); + if (s is Nested { Record: RecordClass { Prop: var _ } r }) + { + Sink(r.Prop); // $ hasValueFlow=6 + } + } + + public void M7() + { + var o1 = Source(7); + var o2 = Source(8); + var t = (new Nested(new RecordClass(o1)), o2); + switch (t) + { + case (Nested { Record: { Prop: object p } }, var o): + Sink(p); // $ hasValueFlow=7 + Sink(o); // $ hasValueFlow=8 + break; + } + } + + public void M8() + { + var s = Source(9); + var c = new C2 { Field = s }; + if (c is C2 { Field: string p }) + { + Sink(p); // $ hasValueFlow=9 } } diff --git a/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.27.4.rst b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.27.4.rst new file mode 100644 index 000000000000..dfe6344a3698 --- /dev/null +++ b/docs/codeql/codeql-overview/codeql-changelog/codeql-cli-2.27.4.rst @@ -0,0 +1,153 @@ +.. _codeql-cli-2.27.4: + +========================== +CodeQL 2.27.4 (2026-11-02) +========================== + +.. contents:: Contents + :depth: 2 + :local: + :backlinks: none + +This is an overview of changes in the CodeQL CLI and relevant CodeQL query and library packs. For additional updates on changes to the CodeQL code scanning experience, check out the `code scanning section on the GitHub blog `__, `relevant GitHub Changelog updates `__, `changes in the CodeQL extension for Visual Studio Code `__, and the `CodeQL Action changelog `__. + +Security Coverage +----------------- + +CodeQL 2.27.4 runs a total of 498 security queries when configured with the Default suite (covering 169 CWE). The Extended suite enables an additional 131 queries (covering 32 more CWE). + +CodeQL CLI +---------- + +Bug Fixes +~~~~~~~~~ + +* The CodeQL CLI now writes messages from the Java virtual machine, such as warnings and initialization errors, to standard error instead of standard output. Previously, these messages could corrupt the output of commands that print JSON or other machine-readable output. + +Security Updates +~~~~~~~~~~~~~~~~ + +* :code:`codeql pack bundle` and :code:`codeql pack publish` now check that each file added to the pack archive is still inside the pack root after symbolic links are resolved. Files that resolve to a location outside the pack root are omitted from the archive with a warning. + +Query Packs +----------- + +Minor Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +C/C++ +""""" + +* The :code:`cpp/suspicious-pointer-scaling` query no longer reports false positives for intentional pointer arithmetic from :code:`std::byte*` buffers. +* The :code:`cpp/unused-local-variable` and :code:`cpp/unused-static-variable` queries no longer report variables marked with the C++17 :code:`[[maybe_unused]]` attribute. + +JavaScript/TypeScript +""""""""""""""""""""" + +* The :code:`js/invalid-prototype-value` query no longer reports computed :code:`__proto__` properties in object literals. + +Query Metadata Changes +~~~~~~~~~~~~~~~~~~~~~~ + +C/C++ +""""" + +* Added a new :code:`cpp-code-quality` query suite containing queries that identify maintainability and reliability issues in C and C++ code. + +C# +"" + +* The :code:`external/cwe/cwe-730` tag has been removed from :code:`cs/redos` and :code:`cs/regex-injection`, because MITRE has marked CWE-730 as prohibited for vulnerability mapping. The queries retain their other CWE tags. + +Java/Kotlin +""""""""""" + +* The :code:`external/cwe/cwe-730` tag has been removed from :code:`java/redos`, :code:`java/polynomial-redos` and :code:`java/regex-injection`, because MITRE has marked CWE-730 as prohibited for vulnerability mapping. The queries retain their other CWE tags. + +JavaScript/TypeScript +""""""""""""""""""""" + +* The :code:`external/cwe/cwe-730` tag has been removed from :code:`js/redos`, :code:`js/polynomial-redos`, :code:`js/regex-injection`, :code:`js/regex-injection-more-sources`, :code:`js/server-crash` and :code:`js/loop-bound-injection`, because MITRE has marked CWE-730 as prohibited for vulnerability mapping. The queries retain their other CWE tags. + +Python +"""""" + +* The :code:`external/cwe/cwe-730` tag has been removed from :code:`py/redos`, :code:`py/polynomial-redos` and :code:`py/regex-injection`, because MITRE has marked CWE-730 as prohibited for vulnerability mapping. The queries retain their other CWE tags. + +Ruby +"""" + +* The :code:`external/cwe/cwe-730` tag has been removed from :code:`rb/redos`, :code:`rb/polynomial-redos` and :code:`rb/regexp-injection`, because MITRE has marked CWE-730 as prohibited for vulnerability mapping. The queries retain their other CWE tags. + +Swift +""""" + +* The :code:`external/cwe/cwe-730` tag has been removed from :code:`swift/redos` and :code:`swift/regex-injection`, because MITRE has marked CWE-730 as prohibited for vulnerability mapping. The queries retain their other CWE tags. + +Language Libraries +------------------ + +Bug Fixes +~~~~~~~~~ + +Golang +"""""" + +* The Go extractor no longer modifies the global Git configuration when private :code:`git_source` registries are configured. The registry proxy certificate is now passed to Git through the :code:`GIT_SSL_CAINFO` environment variable instead, which only affects the Git processes spawned by :code:`go`. + +Breaking Changes +~~~~~~~~~~~~~~~~ + +JavaScript/TypeScript +""""""""""""""""""""" + +* The :code:`SEMMLE_TYPESCRIPT_HOME` environment variable is no longer supported. The JavaScript/TypeScript extractor now ignores the environment variable and always uses its bundled TypeScript compiler. + +Minor Analysis Improvements +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +C# +"" + +* Rolled back the change that set proxy and certificate environment variables for the subprocess that invokes the NuGet CLI because the environment variables were only partially respected by the target process in some cases. + +Java/Kotlin +""""""""""" + +* The :code:`java/log-injection` query now recognizes additional sanitizers and sanitizer guards from the JDK, Apache Commons Lang and Text, Guava, OWASP Java Encoder, and Spring Framework. +* Queries that use path-injection sanitizers now recognize additional substring guards and string replacement and removal operations from Apache Commons Lang and Guava. + +JavaScript/TypeScript +""""""""""""""""""""" + +* Added taint steps for :code:`String.prototype.trimStart`, :code:`trimEnd`, and :code:`normalize`. +* Fixed the flow summary for :code:`Array.prototype.flatMap`. The :code:`thisArg` argument now flows to the callback's :code:`this` instead of its index parameter. + +Rust +"""" + +* The early return taken by the :code:`?` operator no longer makes the unwrapped value of :code:`x?` flow out of the enclosing function. This fixes false positive results from queries such as :code:`rust/cleartext-logging`, where a sensitive value read with :code:`?` was reported as part of an unrelated return value. +* Added neutral models to inhibit spurious generated sink models for :code:`actix_web::HttpRequest::connection_info` and the methods built on it, such as :code:`full_url` and :code:`url_for`. This fixes some false positive results from queries such as :code:`rust/uncontrolled-allocation-size` and :code:`rust/log-injection`. +* Added neutral models to inhibit spurious generated sink models for :code:`Vec` and :code:`VecDeque` methods such as :code:`insert`, :code:`remove` and :code:`push_back`. This fixes some false positive results from queries such as :code:`rust/cleartext-logging`. + +Deprecated APIs +~~~~~~~~~~~~~~~ + +Golang +"""""" + +* :code:`ControlFlow::ConditionGuardNode` is now deprecated. Use the API from :code:`semmle.go.controlflow.Guards` instead. + +New Features +~~~~~~~~~~~~ + +C/C++ +""""" + +* Added support for the :code:`__builtin_lt_synthesizes_from_spaceship`, :code:`__builtin_gt_synthesizes_from_spaceship`, :code:`__builtin_le_synthesizes_from_spaceship`, :code:`__builtin_ge_synthesizes_from_spaceship`, :code:`__builtin_is_implicit_lifetime`, :code:`__builtin_is_structural`, and :code:`__builtin_is_virtual_base_of` builtin operations. +* Added a new predicate :code:`getBitWidth` to the :code:`Type` class, which yields the bit-width of the type. + +Golang +"""""" + +* The Go language library now instantiates the shared library :code:`semmle.go.controlflow.Guards`, including the :code:`Guard` and :code:`GuardValue` classes and the :code:`guardEnsures`, :code:`guardEnsuresEq`, :code:`guardEnsuresNeq`, and :code:`guardEnsuresLeq` predicates. diff --git a/docs/codeql/codeql-overview/codeql-changelog/index.rst b/docs/codeql/codeql-overview/codeql-changelog/index.rst index 657431997fce..0233e7c81ad2 100644 --- a/docs/codeql/codeql-overview/codeql-changelog/index.rst +++ b/docs/codeql/codeql-overview/codeql-changelog/index.rst @@ -11,6 +11,7 @@ A list of queries for each suite and language `is available here `_,"``org.apache.commons.collections``, ``org.apache.commons.collections4``",,1606,,,,,,, `Apache Commons IO `_,``org.apache.commons.io``,,570,124,105,,,,,15 - `Apache Commons Lang `_,``org.apache.commons.lang3``,,425,7,,,,,, - `Apache Commons Text `_,``org.apache.commons.text``,,272,,,,,,, + `Apache Commons Lang `_,``org.apache.commons.lang3``,,426,7,,,,,, + `Apache Commons Text `_,``org.apache.commons.text``,,273,,,,,,, `Apache HttpComponents `_,"``org.apache.hc.core5.*``, ``org.apache.http``",5,205,127,,3,,,,124 `Apache Log4j 2 `_,``org.apache.logging.log4j``,,8,359,,,,,, `Apache Struts `_,"``org.apache.struts2``, ``org.apache.struts.beanvalidation.validation.interceptor``",,3877,14,,,,,, @@ -20,7 +20,7 @@ Java framework & library support `Couchbase `_,``com.couchbase.client.*``,,1,25,,,6,,, `FreeMarker `_,"``freemarker.cache``, ``freemarker.template``",,,8,,,,,, `Google Gson `_,``com.google.gson``,,52,,,,,,, - `Google Guava `_,``com.google.common.*``,,730,43,9,,,,, + `Google Guava `_,``com.google.common.*``,,735,43,9,,,,, `Groovy `_,"``groovy.lang``, ``groovy.text``, ``groovy.util``, ``org.codehaus.groovy.control``",,,33,,,,,, `Hibernate `_,``org.hibernate``,,,10,,,10,,, `JBoss Logging `_,``org.jboss.logging``,,,324,,,,,, @@ -40,6 +40,6 @@ Java framework & library support `Spring `_,``org.springframework.*``,46,504,152,26,,36,14,,36 `Thymeleaf `_,``org.thymeleaf``,,2,2,,,,,, `jOOQ `_,``org.jooq``,,,1,,,1,,, - Others,"``actions.osgi``, ``antlr``, ``ch.ethz.ssh2``, ``cn.hutool.core.codec``, ``com.alibaba.com.caucho.hessian.io``, ``com.alibaba.druid.sql``, ``com.alibaba.fastjson2``, ``com.amazonaws.auth``, ``com.auth0.jwt.algorithms``, ``com.azure.identity``, ``com.caucho.burlap.io``, ``com.caucho.hessian.io``, ``com.cedarsoftware.util.io``, ``com.esotericsoftware.kryo.io``, ``com.esotericsoftware.kryo5.io``, ``com.esotericsoftware.yamlbeans``, ``com.hubspot.jinjava``, ``com.jcraft.jsch``, ``com.microsoft.sqlserver.jdbc``, ``com.mitchellbosecke.pebble``, ``com.opensymphony.xwork2``, ``com.sshtools.j2ssh.authentication``, ``com.sun.crypto.provider``, ``com.sun.jndi.ldap``, ``com.sun.net.httpserver``, ``com.sun.net.ssl``, ``com.sun.rowset``, ``com.sun.security.auth.module``, ``com.sun.security.ntlm``, ``com.sun.security.sasl.digest``, ``com.thoughtworks.xstream``, ``com.trilead.ssh2``, ``com.unboundid.ldap.sdk``, ``com.zaxxer.hikari``, ``flexjson``, ``hudson``, ``io.jsonwebtoken``, ``io.micronaut.context.annotation``, ``io.micronaut.core.convert.value``, ``io.micronaut.http``, ``io.r2dbc.spi``, ``io.undertow.server.handlers.resource``, ``javafx.scene.web``, ``jenkins``, ``jodd.json``, ``liquibase.database.jvm``, ``liquibase.statement.core``, ``net.lingala.zip4j``, ``net.schmizz.sshj``, ``net.sf.json``, ``net.sf.saxon.s9api``, ``ognl``, ``org.acegisecurity``, ``org.antlr.runtime``, ``org.apache.avro``, ``org.apache.commons.codec``, ``org.apache.commons.compress.archivers.tar``, ``org.apache.commons.exec``, ``org.apache.commons.fileupload``, ``org.apache.commons.httpclient.util``, ``org.apache.commons.jelly``, ``org.apache.commons.jexl2``, ``org.apache.commons.jexl3``, ``org.apache.commons.lang``, ``org.apache.commons.logging``, ``org.apache.commons.net``, ``org.apache.commons.ognl``, ``org.apache.cxf.catalog``, ``org.apache.cxf.common.classloader``, ``org.apache.cxf.common.jaxb``, ``org.apache.cxf.common.logging``, ``org.apache.cxf.configuration.jsse``, ``org.apache.cxf.helpers``, ``org.apache.cxf.resource``, ``org.apache.cxf.staxutils``, ``org.apache.cxf.tools.corba.utils``, ``org.apache.cxf.tools.util``, ``org.apache.cxf.transform``, ``org.apache.directory.ldap.client.api``, ``org.apache.hadoop.fs``, ``org.apache.hadoop.hive.metastore``, ``org.apache.hadoop.hive.ql.exec``, ``org.apache.hadoop.hive.ql.metadata``, ``org.apache.hc.client5.http.async.methods``, ``org.apache.hc.client5.http.classic.methods``, ``org.apache.hc.client5.http.fluent``, ``org.apache.hc.client5.http.protocol``, ``org.apache.hc.client5.http.utils``, ``org.apache.hive.hcatalog.templeton``, ``org.apache.ibatis.jdbc``, ``org.apache.ibatis.mapping``, ``org.apache.log4j``, ``org.apache.poi``, ``org.apache.shiro.authc``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.apache.shiro.mgt``, ``org.apache.sshd.client.session``, ``org.apache.tools.ant``, ``org.apache.tools.zip``, ``org.codehaus.cargo.container.installer``, ``org.dom4j``, ``org.exolab.castor.xml``, ``org.fusesource.leveldbjni``, ``org.geogebra.web.full.main``, ``org.gradle.api.file``, ``org.ho.yaml``, ``org.influxdb``, ``org.jabsorb``, ``org.jboss.vfs``, ``org.jdbi.v3.core``, ``org.jenkins.ui.icon``, ``org.jenkins.ui.symbol``, ``org.keycloak.models.map.storage``, ``org.kohsuke.stapler``, ``org.lastaflute.web``, ``org.mvel2``, ``org.openjdk.jmh.runner.options``, ``org.owasp.esapi``, ``org.pac4j.jwt.config.encryption``, ``org.pac4j.jwt.config.signature``, ``org.scijava.log``, ``org.xml.sax``, ``org.xmlpull.v1``, ``play.libs.ws``, ``play.mvc``, ``ratpack.core.form``, ``ratpack.core.handling``, ``ratpack.core.http``, ``ratpack.exec``, ``ratpack.form``, ``ratpack.func``, ``ratpack.handling``, ``ratpack.http``, ``ratpack.util``, ``software.amazon.awssdk.transfer.s3.model``, ``sun.jvmstat.perfdata.monitor.protocol.local``, ``sun.jvmstat.perfdata.monitor.protocol.rmi``, ``sun.misc``, ``sun.net.ftp``, ``sun.net.www.protocol.http``, ``sun.security.acl``, ``sun.security.jgss.krb5``, ``sun.security.krb5``, ``sun.security.pkcs``, ``sun.security.pkcs11``, ``sun.security.provider``, ``sun.security.ssl``, ``sun.security.x509``, ``sun.tools.jconsole``",167,8313,855,188,6,20,18,,211 - Totals,,422,28691,2796,461,16,151,33,1,441 + Others,"``actions.osgi``, ``antlr``, ``ch.ethz.ssh2``, ``cn.hutool.core.codec``, ``com.alibaba.com.caucho.hessian.io``, ``com.alibaba.druid.sql``, ``com.alibaba.fastjson2``, ``com.amazonaws.auth``, ``com.auth0.jwt.algorithms``, ``com.azure.identity``, ``com.caucho.burlap.io``, ``com.caucho.hessian.io``, ``com.cedarsoftware.util.io``, ``com.esotericsoftware.kryo.io``, ``com.esotericsoftware.kryo5.io``, ``com.esotericsoftware.yamlbeans``, ``com.hubspot.jinjava``, ``com.jcraft.jsch``, ``com.microsoft.sqlserver.jdbc``, ``com.mitchellbosecke.pebble``, ``com.opensymphony.xwork2``, ``com.sshtools.j2ssh.authentication``, ``com.sun.crypto.provider``, ``com.sun.jndi.ldap``, ``com.sun.net.httpserver``, ``com.sun.net.ssl``, ``com.sun.rowset``, ``com.sun.security.auth.module``, ``com.sun.security.ntlm``, ``com.sun.security.sasl.digest``, ``com.thoughtworks.xstream``, ``com.trilead.ssh2``, ``com.unboundid.ldap.sdk``, ``com.zaxxer.hikari``, ``flexjson``, ``hudson``, ``io.jsonwebtoken``, ``io.micronaut.context.annotation``, ``io.micronaut.core.convert.value``, ``io.micronaut.http``, ``io.r2dbc.spi``, ``io.undertow.server.handlers.resource``, ``javafx.scene.web``, ``jenkins``, ``jodd.json``, ``liquibase.database.jvm``, ``liquibase.statement.core``, ``net.lingala.zip4j``, ``net.schmizz.sshj``, ``net.sf.json``, ``net.sf.saxon.s9api``, ``ognl``, ``org.acegisecurity``, ``org.antlr.runtime``, ``org.apache.avro``, ``org.apache.commons.codec``, ``org.apache.commons.compress.archivers.tar``, ``org.apache.commons.exec``, ``org.apache.commons.fileupload``, ``org.apache.commons.httpclient.util``, ``org.apache.commons.jelly``, ``org.apache.commons.jexl2``, ``org.apache.commons.jexl3``, ``org.apache.commons.lang``, ``org.apache.commons.logging``, ``org.apache.commons.net``, ``org.apache.commons.ognl``, ``org.apache.cxf.catalog``, ``org.apache.cxf.common.classloader``, ``org.apache.cxf.common.jaxb``, ``org.apache.cxf.common.logging``, ``org.apache.cxf.configuration.jsse``, ``org.apache.cxf.helpers``, ``org.apache.cxf.resource``, ``org.apache.cxf.staxutils``, ``org.apache.cxf.tools.corba.utils``, ``org.apache.cxf.tools.util``, ``org.apache.cxf.transform``, ``org.apache.directory.ldap.client.api``, ``org.apache.hadoop.fs``, ``org.apache.hadoop.hive.metastore``, ``org.apache.hadoop.hive.ql.exec``, ``org.apache.hadoop.hive.ql.metadata``, ``org.apache.hc.client5.http.async.methods``, ``org.apache.hc.client5.http.classic.methods``, ``org.apache.hc.client5.http.fluent``, ``org.apache.hc.client5.http.protocol``, ``org.apache.hc.client5.http.utils``, ``org.apache.hive.hcatalog.templeton``, ``org.apache.ibatis.jdbc``, ``org.apache.ibatis.mapping``, ``org.apache.log4j``, ``org.apache.poi``, ``org.apache.shiro.authc``, ``org.apache.shiro.codec``, ``org.apache.shiro.jndi``, ``org.apache.shiro.mgt``, ``org.apache.sshd.client.session``, ``org.apache.tools.ant``, ``org.apache.tools.zip``, ``org.codehaus.cargo.container.installer``, ``org.dom4j``, ``org.exolab.castor.xml``, ``org.fusesource.leveldbjni``, ``org.geogebra.web.full.main``, ``org.gradle.api.file``, ``org.ho.yaml``, ``org.influxdb``, ``org.jabsorb``, ``org.jboss.vfs``, ``org.jdbi.v3.core``, ``org.jenkins.ui.icon``, ``org.jenkins.ui.symbol``, ``org.keycloak.models.map.storage``, ``org.kohsuke.stapler``, ``org.lastaflute.web``, ``org.mvel2``, ``org.openjdk.jmh.runner.options``, ``org.owasp.encoder``, ``org.owasp.esapi``, ``org.pac4j.jwt.config.encryption``, ``org.pac4j.jwt.config.signature``, ``org.scijava.log``, ``org.xml.sax``, ``org.xmlpull.v1``, ``play.libs.ws``, ``play.mvc``, ``ratpack.core.form``, ``ratpack.core.handling``, ``ratpack.core.http``, ``ratpack.exec``, ``ratpack.form``, ``ratpack.func``, ``ratpack.handling``, ``ratpack.http``, ``ratpack.util``, ``software.amazon.awssdk.transfer.s3.model``, ``sun.jvmstat.perfdata.monitor.protocol.local``, ``sun.jvmstat.perfdata.monitor.protocol.rmi``, ``sun.misc``, ``sun.net.ftp``, ``sun.net.www.protocol.http``, ``sun.security.acl``, ``sun.security.jgss.krb5``, ``sun.security.krb5``, ``sun.security.pkcs``, ``sun.security.pkcs11``, ``sun.security.provider``, ``sun.security.ssl``, ``sun.security.x509``, ``sun.tools.jconsole``",167,8314,855,188,6,20,18,,211 + Totals,,422,28699,2796,461,16,151,33,1,441 diff --git a/java/kotlin-extractor/deps.bzl b/java/kotlin-extractor/deps.bzl index bee713f8c466..24503f7baa67 100644 --- a/java/kotlin-extractor/deps.bzl +++ b/java/kotlin-extractor/deps.bzl @@ -27,6 +27,7 @@ def _kotlin_dep_impl(repository_ctx): "kotlin-stdlib.jar", "kotlin-reflect.jar", "kotlin-script-runtime.jar", + "kotlinx-coroutines-core-jvm.jar", "trove4j.jar", ): repository_ctx.symlink("empty.zip", jar) diff --git a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt index 4571987da6af..7a092faa9d56 100644 --- a/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt +++ b/java/kotlin-extractor/src/main/kotlin/KotlinFileExtractor.kt @@ -6966,7 +6966,7 @@ open class KotlinFileExtractor( tw.writeExprs_stringliteral(id, type.javaResult.id, parent, idx) tw.writeExprsKotlinType(id, type.kotlinResult.id) extractExprContext(id, locId, enclosingCallable, enclosingStmt) - tw.writeNamestrings(toQuotedLiteral(v.toString()), v.toString(), id) + tw.writeNamestrings(toQuotedLiteral(v), v, id) } } v == null -> { diff --git a/java/ql/lib/change-notes/2026-10-14-constant-value-guards.md b/java/ql/lib/change-notes/2026-10-14-constant-value-guards.md new file mode 100644 index 000000000000..ee8e09960064 --- /dev/null +++ b/java/ql/lib/change-notes/2026-10-14-constant-value-guards.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Java taint-tracking queries now recognize equality and case-insensitive equality checks against fixed string constants as sanitizers. The queries `java/ssrf` and `java/unvalidated-url-redirection` also recognize checks of `URI.getHost()` against fixed collections of strings, including when the host is normalized to upper or lower case. diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index dcb43f42d098..eff99bb22a6e 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 9.3.4 +version: 9.3.5-dev groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/lib/semmle/code/java/dataflow/FlowSteps.qll b/java/ql/lib/semmle/code/java/dataflow/FlowSteps.qll index 6dd8de89e213..615a9640bf07 100644 --- a/java/ql/lib/semmle/code/java/dataflow/FlowSteps.qll +++ b/java/ql/lib/semmle/code/java/dataflow/FlowSteps.qll @@ -30,7 +30,7 @@ private module Frameworks { private import semmle.code.java.frameworks.ThreadLocal private import semmle.code.java.frameworks.ratpack.RatpackExec private import semmle.code.java.frameworks.stapler.Stapler - private import semmle.code.java.security.ListOfConstantsSanitizer + private import semmle.code.java.security.ConstantValueSanitizer private import semmle.code.java.security.PathSanitizer } diff --git a/java/ql/lib/semmle/code/java/dataflow/IntegerGuards.qll b/java/ql/lib/semmle/code/java/dataflow/IntegerGuards.qll index ea2bce01e151..d1498636c9a0 100644 --- a/java/ql/lib/semmle/code/java/dataflow/IntegerGuards.qll +++ b/java/ql/lib/semmle/code/java/dataflow/IntegerGuards.qll @@ -9,31 +9,6 @@ private import SSA private import RangeUtils private import RangeAnalysis -/** Gets an expression that might have the value `i`. */ -deprecated private Expr exprWithIntValue(int i) { - result.(ConstantIntegerExpr).getIntValue() = i or - result.(ChooseExpr).getAResultExpr() = exprWithIntValue(i) -} - -/** - * An expression for which the predicate `integerGuard` is relevant. - * This includes `VarRead` and `MethodCall`. - */ -deprecated class IntComparableExpr extends Expr { - IntComparableExpr() { this instanceof VarRead or this instanceof MethodCall } - - /** Gets an integer that is directly assigned to the expression in case of a variable; or zero. */ - deprecated int relevantInt() { - exists(SsaExplicitUpdate ssa, SsaSourceVariable v | - this = v.getAnAccess() and - ssa.getSourceVariable() = v and - ssa.getDefiningExpr().(VariableAssign).getSource() = exprWithIntValue(result) - ) - or - result = 0 - } -} - /** * Holds if `comp` evaluating to `branch` ensures that `e1` is less than `e2`. * When `strict` is true, `e1` is strictly less than `e2`, otherwise it is less @@ -111,79 +86,3 @@ Expr nonZeroGuard(Expr e, boolean branch) { upper = false and val > 0 // e >= val > 0 ==> e != 0 ) } - -/** - * DEPRECATED. - * - * An expression that directly tests whether a given expression is equal to `k` or not. - * The set of `k`s is restricted to those that are relevant for the expression or - * have a direct comparison with the expression. - * - * If `result` evaluates to `branch`, then `e` is guaranteed to be equal to `k` if `is_k` - * is true, and different from `k` if `is_k` is false. - */ -pragma[nomagic] -deprecated Expr integerGuard(IntComparableExpr e, boolean branch, int k, boolean is_k) { - exists(EqualityTest eqtest, boolean polarity | - eqtest = result and - eqtest.hasOperands(e, any(ConstantIntegerExpr c | c.getIntValue() = k)) and - polarity = eqtest.polarity() and - ( - branch = true and is_k = polarity - or - branch = false and is_k = polarity.booleanNot() - ) - ) - or - exists(int val, boolean upper | - rangeGuard(result, branch, e, val, upper) and - k = e.relevantInt() and - is_k = false - | - upper = true and val < k // e <= val < k ==> e != k - or - upper = false and val > k // e >= val > k ==> e != k - ) -} - -/** - * DEPRECATED: Use `rangeGuard` instead. - * - * A guard that splits the values of a variable into one range with an upper bound of `k-1` - * and one with a lower bound of `k`. - * - * If `branch_with_lower_bound_k` is true then `result` is equivalent to `k <= x` - * and if it is false then `result` is equivalent to `k > x`. - */ -deprecated Expr intBoundGuard(VarRead x, boolean branch_with_lower_bound_k, int k) { - exists(ComparisonExpr comp, ConstantIntegerExpr c, int val | - comp = result and - comp.hasOperands(x, c) and - c.getIntValue() = val and - x.getVariable().getType() instanceof IntegralType - | - // c < x - comp.getLesserOperand() = c and - comp.isStrict() and - branch_with_lower_bound_k = true and - val + 1 = k - or - // c <= x - comp.getLesserOperand() = c and - not comp.isStrict() and - branch_with_lower_bound_k = true and - val = k - or - // x < c - comp.getGreaterOperand() = c and - comp.isStrict() and - branch_with_lower_bound_k = false and - val = k - or - // x <= c - comp.getGreaterOperand() = c and - not comp.isStrict() and - branch_with_lower_bound_k = false and - val + 1 = k - ) -} diff --git a/java/ql/lib/semmle/code/java/dataflow/SSA.qll b/java/ql/lib/semmle/code/java/dataflow/SSA.qll index a627904174b6..c3dca4cb36bb 100644 --- a/java/ql/lib/semmle/code/java/dataflow/SSA.qll +++ b/java/ql/lib/semmle/code/java/dataflow/SSA.qll @@ -188,178 +188,6 @@ class SsaImplicitQualifierDefinition extends SsaImplicitWrite { */ VarRead ssaGetAFirstUse(SsaDefinition def) { firstUse(def, result) } -/** - * DEPRECATED: use `SsaDefinition` instead. - * - * An SSA variable. - */ -deprecated class SsaVariable extends Definition { - /** Gets the SSA source variable underlying this SSA variable. */ - SsaSourceVariable getSourceVariable() { result = super.getSourceVariable() } - - /** - * DEPRECATED: Use `getControlFlowNode()` instead. - * - * Gets the `ControlFlowNode` at which this SSA variable is defined. - */ - pragma[nomagic] - deprecated ControlFlowNode getCfgNode() { - exists(BasicBlock bb, int i | - this.definesAt(_, bb, i) and - // phi nodes are inserted at position `-1` - result = bb.getNode(0.maximum(i)) - ) - } - - /** Gets a textual representation of this SSA variable. */ - string toString() { none() } - - /** Gets the source location for this element. */ - Location getLocation() { result = this.getCfgNode().getLocation() } - - /** Gets the `BasicBlock` in which this SSA variable is defined. */ - BasicBlock getBasicBlock() { result = super.getBasicBlock() } - - /** - * DEPRECATED: Use `getARead()` instead. - * - * Gets an access of this SSA variable. - */ - deprecated VarRead getAUse() { result = getAUse(this) } - - /** - * DEPRECATED: Use `ssaGetAFirstUse(SsaDefinition)` instead. - * - * Gets an access of the SSA source variable underlying this SSA variable - * that can be reached from this SSA variable without passing through any - * other uses, but potentially through phi nodes and uncertain implicit - * updates. - * - * Subsequent uses can be found by following the steps defined by - * `adjacentUseUse`. - */ - deprecated VarRead getAFirstUse() { firstUse(this, result) } - - /** Holds if this SSA variable is live at the end of `b`. */ - predicate isLiveAtEndOfBlock(BasicBlock b) { ssaDefReachesEndOfBlock(b, this) } - - /** - * DEPRECATED. - * - * Gets an SSA variable whose value can flow to this one in one step. This - * includes inputs to phi nodes, the prior definition of uncertain updates, - * and the captured ssa variable for a closure variable. - */ - deprecated SsaVariable getAPhiInputOrPriorDef() { - result = this.(SsaPhiNode).getAPhiInput() or - result = this.(SsaUncertainImplicitUpdate).getPriorDef() or - this.(SsaImplicitInit).captures(result) - } - - /** - * DEPRECATED: Use `SsaCapturedDefinition::getAnUltimateCapturedDefinition()` - * and/or `SsaDefinition::getAnUltimateDefinition()` instead. - * - * Gets a definition that ultimately defines this variable and is not itself a phi node. - */ - deprecated SsaVariable getAnUltimateDefinition() { - result = this.getAPhiInputOrPriorDef*() and not result instanceof SsaPhiNode - } -} - -/** - * DEPRECATED: use `SsaWriteDefinition` instead. - * - * An SSA variable that either explicitly or implicitly updates the variable. - */ -deprecated class SsaUpdate extends SsaVariable instanceof WriteDefinition { - SsaUpdate() { not this instanceof SsaImplicitInit } -} - -/** - * DEPRECATED: Use `SsaExplicitWrite` instead. - * - * An SSA variable that is defined by a `VariableUpdate`. - */ -deprecated class SsaExplicitUpdate extends SsaUpdate { - private VariableUpdate upd; - - SsaExplicitUpdate() { ssaExplicitUpdate(this, upd) } - - override string toString() { result = "SSA def(" + this.getSourceVariable() + ")" } - - /** Gets the `VariableUpdate` defining the SSA variable. */ - VariableUpdate getDefiningExpr() { result = upd } -} - -/** - * DEPRECATED: Use `SsaImplicitWrite` instead. - * - * An SSA variable that represents any sort of implicit update. This can be a - * `Call` that might reach a non-local update of the field, an explicit or - * implicit update of the qualifier of the field, or the implicit update that - * occurs just prior to a `FieldRead` of an untracked field. - */ -deprecated class SsaImplicitUpdate extends SsaUpdate { - SsaImplicitUpdate() { not this instanceof SsaExplicitUpdate } - - override string toString() { - result = "SSA impl upd[" + this.getKind() + "](" + this.getSourceVariable() + ")" - } - - private predicate hasExplicitQualifierUpdate() { - exists(SsaUpdate qdef, BasicBlock bb, int i | - qdef.definesAt(this.getSourceVariable().getQualifier(), bb, i) and - this.definesAt(_, bb, i) and - not qdef instanceof SsaUncertainImplicitUpdate - ) - } - - private predicate hasImplicitQualifierUpdate() { - exists(SsaUncertainImplicitUpdate qdef, BasicBlock bb, int i | - qdef.definesAt(this.getSourceVariable().getQualifier(), bb, i) and - this.definesAt(_, bb, i) - ) - } - - private string getKind() { - this.hasExplicitQualifierUpdate() and - result = "explicit qualifier" // -> SSA qualifier def - or - if this.hasImplicitQualifierUpdate() - then - if isNonLocal(this) - then result = "nonlocal + nonlocal qualifier" // -> SSA qualifier def - else result = "nonlocal qualifier" // -> SSA qualifier def - else ( - isNonLocal(this) and result = "nonlocal" // -> SSA call def - ) - } - - /** - * DEPRECATED: Use `SsaImplicitCallDefinition.getANonLocalUpdate()` instead. - * - * Gets a reachable `FieldWrite` that might represent this ssa update, if any. - */ - overlay[global] - deprecated FieldWrite getANonLocalUpdate() { result = getANonLocalUpdate(this) } - - /** - * DEPRECATED: Use `SsaImplicitQualifierDefinition` instead. - * - * Holds if this ssa variable might change the value to something unknown. - * - * Examples include updates that might change the value of the qualifier, or - * reads from untracked variables, for example those where the field or one - * of its qualifiers is volatile. - */ - deprecated predicate assignsUnknownValue() { - this.hasExplicitQualifierUpdate() - or - this.hasImplicitQualifierUpdate() - } -} - private predicate hasQualifierUpdate(SsaImplicitWrite def) { exists(SsaWriteDefinition qdef, BasicBlock bb, int i | qdef.definesAt(def.getSourceVariable().getQualifier(), bb, i) and @@ -384,74 +212,6 @@ private predicate isNonLocalImpl(SsaImplicitWrite calldef) { exists(getANonLocal private predicate isNonLocal(SsaImplicitWrite calldef) = forceLocal(isNonLocalImpl/1)(calldef) -/** - * DEPRECATED: Use `SsaUncertainWrite` instead. - * - * An SSA variable that represents an uncertain implicit update of the value. - * This is a `Call` that might reach a non-local update of the field or one of - * its qualifiers. - */ -deprecated class SsaUncertainImplicitUpdate extends SsaImplicitUpdate { - SsaUncertainImplicitUpdate() { ssaUncertainImplicitUpdate(this) } - - /** - * DEPRECATED: Use `getPriorDefinition()` instead. - * - * Gets the immediately preceding definition. Since this update is uncertain - * the value from the preceding definition might still be valid. - */ - deprecated SsaVariable getPriorDef() { ssaDefReachesUncertainDef(result, this) } -} - -/** - * DEPRECATED: Use `SsaParameterInit`, `SsaImplicitEntryDefinition`, or `SsaCapturedDefinition` instead. - * - * An SSA variable that is defined by its initial value in the callable. This - * includes initial values of parameters, fields, and closure variables. - */ -deprecated class SsaImplicitInit extends SsaVariable instanceof WriteDefinition { - SsaImplicitInit() { ssaImplicitInit(this) } - - override string toString() { result = "SSA init(" + this.getSourceVariable() + ")" } - - /** Holds if this is a closure variable that captures the value of `capturedvar`. */ - predicate captures(SsaVariable capturedvar) { captures(this, capturedvar) } - - /** - * DEPRECATED: Use `SsaParameterInit::getParameter()` instead. - * - * Holds if the SSA variable is a parameter defined by its initial value in the callable. - */ - deprecated predicate isParameterDefinition(Parameter p) { - this.getSourceVariable() = TLocalVar(p.getCallable(), p) and - p.getCallable().getBody().getControlFlowNode() = this.getCfgNode() - } -} - -/** - * DEPRECATED: Use `SsaPhiDefinition` instead. - * - * An SSA phi node. - */ -deprecated class SsaPhiNode extends SsaVariable instanceof PhiNode { - override string toString() { result = "SSA phi(" + this.getSourceVariable() + ")" } - - /** - * DEPRECATED: Use `getAnInput()` instead. - * - * Gets an input to the phi node defining the SSA variable. - */ - deprecated SsaVariable getAPhiInput() { this.hasInputFromBlock(result, _) } - - /** Gets an input to the phi node defining the SSA variable. */ - SsaVariable getAnInput() { this.hasInputFromBlock(result, _) } - - /** Holds if `inp` is an input to the phi node along the edge originating in `bb`. */ - predicate hasInputFromBlock(SsaVariable inp, BasicBlock bb) { - phiHasInputFromBlock(this, inp, bb) - } -} - private class RefTypeCastingExpr extends CastingExpr { RefTypeCastingExpr() { this.getType() instanceof RefType and diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll index 019b507586f5..94dda4b64e08 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/SsaImpl.qll @@ -239,53 +239,6 @@ final class UncertainWriteDefinition = Impl::UncertainWriteDefinition; final class PhiNode = Impl::PhiNode; -deprecated predicate ssaExplicitUpdate(SsaUpdate def, VariableUpdate upd) { - exists(SsaSourceVariable v, BasicBlock bb, int i | - def.definesAt(v, bb, i) and - certainVariableUpdate(v, upd.getControlFlowNode(), bb, i) and - getDestVar(upd) = def.getSourceVariable() - ) -} - -deprecated predicate ssaUncertainImplicitUpdate(SsaImplicitUpdate def) { - exists(SsaSourceVariable v, BasicBlock bb, int i | - def.definesAt(v, bb, i) and - uncertainVariableUpdate(v, _, bb, i) - ) -} - -deprecated predicate ssaImplicitInit(WriteDefinition def) { - exists(SsaSourceVariable v, BasicBlock bb, int i | - def.definesAt(v, bb, i) and - hasEntryDef(v, bb) and - i = -1 - ) -} - -/** - * Holds if the SSA definition of `v` at `def` reaches `redef` without crossing another - * SSA definition of `v`. - */ -deprecated predicate ssaDefReachesUncertainDef(TrackedSsaDef def, SsaUncertainImplicitUpdate redef) { - Impl::uncertainWriteDefinitionInput(redef, def) -} - -deprecated VarRead getAUse(Definition def) { - exists(SsaSourceVariable v, BasicBlock bb, int i | - Impl::ssaDefReachesRead(v, def, bb, i) and - result.getControlFlowNode() = bb.getNode(i) and - result = v.getAnAccess() - ) -} - -deprecated predicate ssaDefReachesEndOfBlock(BasicBlock bb, Definition def) { - Impl::ssaDefReachesEndOfBlock(bb, def, _) -} - -deprecated predicate phiHasInputFromBlock(PhiNode phi, Definition inp, BasicBlock bb) { - Impl::phiHasInputFromBlock(phi, inp, bb) -} - cached private module Cached { /** Gets the destination variable of an update of a tracked variable. */ diff --git a/java/ql/lib/semmle/code/java/security/ListOfConstantsSanitizer.qll b/java/ql/lib/semmle/code/java/security/ConstantValueSanitizer.qll similarity index 70% rename from java/ql/lib/semmle/code/java/security/ListOfConstantsSanitizer.qll rename to java/ql/lib/semmle/code/java/security/ConstantValueSanitizer.qll index b00c5c99405a..46020585d0e1 100644 --- a/java/ql/lib/semmle/code/java/security/ListOfConstantsSanitizer.qll +++ b/java/ql/lib/semmle/code/java/security/ConstantValueSanitizer.qll @@ -1,7 +1,4 @@ -/** - * Provides a default taint sanitizer identifying comparisons against lists of - * compile-time constants. - */ +/** Provides a default taint sanitizer identifying checks against compile-time constants. */ overlay[local?] module; @@ -10,6 +7,7 @@ private import codeql.typeflow.UniversalFlow as UniversalFlow private import semmle.code.java.Collections private import semmle.code.java.controlflow.Guards private import semmle.code.java.dataflow.internal.BaseSSA as Base +private import semmle.code.java.dataflow.NullGuards private import semmle.code.java.dataflow.TaintTracking private import semmle.code.java.dataflow.TypeFlow private import semmle.code.java.dispatch.VirtualDispatch @@ -157,6 +155,29 @@ private predicate collectionWithPossibleMutation(FlowNode n) { ) } +/** Holds if `n` is a collection constructed by an API that rejects null elements. */ +private predicate nullRejectingCollectionCreation(FlowNode n) { + exists(Call c, Callable tgt | + n.asExpr() = c and + c.getCallee().getSourceDeclaration() = tgt + | + tgt.hasQualifiedName("java.util", ["List", "Set"], ["copyOf", "of"]) + or + tgt.hasQualifiedName("com.google.common.collect", ["ImmutableList", "ImmutableSet"], + ["copyOf", "of"]) + ) +} + +private module NullRejectingCollectionProp implements BaseUniversalFlow::NullaryPropertySig { + predicate hasPropertyBase(FlowNode n) { nullRejectingCollectionCreation(n) } + + predicate barrier = collectionWithPossibleMutation/1; +} + +/** Holds if the given collection cannot contain null. */ +private predicate nullRejectingCollection = + BaseUniversalFlow::FlowNullary::hasProperty/1; + /** * A collection constructor that constructs an empty mutable collection. */ @@ -241,27 +262,89 @@ private MethodCall normalizeCaseCall(Expr arg) { * Holds if the guard `g` ensures that the expression `e` is one of a set of * known constants upon evaluating to `branch`. */ -private predicate constantCollectionContainsCheck(Guard g, Expr e, boolean branch) { - exists(MethodCall mc, Method m, FlowNode n, Expr checked | - g = mc and - mc.getMethod().getSourceDeclaration().overridesOrInstantiates*(m) and +private predicate constantCollectionContainsCall( + MethodCall contains, FlowNode collection, Expr checked +) { + exists(Method m, FlowNode n | + contains.getMethod().getSourceDeclaration().overridesOrInstantiates*(m) and m.hasQualifiedName("java.util", "Collection", "contains") and - n.asExpr() = mc.getQualifier() and + n.asExpr() = contains.getQualifier() and constantCollection(n) and - checked = mc.getAnArgument() and + checked = contains.getAnArgument() and + collection = n + ) +} + +private predicate constantCollectionContainsCheck(Guard g, Expr e, boolean branch) { + exists(Expr checked | checked = e or checked = normalizeCaseCall(e) | + constantCollectionContainsCall(g, _, checked) and + branch = true + ) +} + +/** + * Holds if the guard `g` ensures that the string expression `e` equals a compile-time constant + * upon evaluating to `branch`. + */ +private predicate constantStringEqualityCheck(Guard g, Expr e, boolean branch) { + exists(MethodCall comparison, Expr constant | + g = comparison and + comparison.getMethod().getDeclaringType() instanceof TypeString and + comparison.getMethod().hasName(["equals", "equalsIgnoreCase"]) and + branch = true and + ( + e = comparison.getQualifier() and constant = comparison.getArgument(0) + or + e = comparison.getArgument(0) and constant = comparison.getQualifier() + ) and + exists(constant.(CompileTimeConstantExpr).getStringValue()) + ) +} + +/** + * Holds if the guard `g` ensures that the expression `e` is one of a set of compile-time constants + * upon evaluating to `branch`. + */ +predicate constantValueGuardChecks(Guard g, Expr e, boolean branch) { + constantStringEqualityCheck(g, e, branch) + or + constantCollectionContainsCheck(g, e, branch) +} + +/** + * Holds if `g` ensures that `e` is a non-null member of a set of compile-time constants upon + * evaluating to `branch`. + */ +predicate nonNullConstantValueGuardChecks(Guard g, Expr e, boolean branch) { + constantStringEqualityCheck(g, e, branch) + or + exists(FlowNode collection, Expr checked | + constantCollectionContainsCall(g, collection, checked) and branch = true | - checked = e or - checked = normalizeCaseCall(e) + checked = e and + ( + nullRejectingCollection(collection) + or + e = clearlyNotNullExpr() + ) + or + checked = normalizeCaseCall(e) and + ( + nullRejectingCollection(collection) + or + checked.(MethodCall).getQualifier() = e + or + e = clearlyNotNullExpr() + ) ) } /** - * A comparison against a list of compile-time constants, sanitizing taint by - * restricting to a set of known values. + * A check against compile-time constants, sanitizing taint by restricting a value to a known set. */ -private class ListOfConstantsComparisonSanitizerGuard extends TaintTracking::DefaultTaintSanitizer { - ListOfConstantsComparisonSanitizerGuard() { - this = DataFlow::BarrierGuard::getABarrierNode() +private class ConstantValueSanitizerGuard extends TaintTracking::DefaultTaintSanitizer { + ConstantValueSanitizerGuard() { + this = DataFlow::BarrierGuard::getABarrierNode() } } diff --git a/java/ql/lib/semmle/code/java/security/RequestForgery.qll b/java/ql/lib/semmle/code/java/security/RequestForgery.qll index e1c77a721535..3711a93c0530 100644 --- a/java/ql/lib/semmle/code/java/security/RequestForgery.qll +++ b/java/ql/lib/semmle/code/java/security/RequestForgery.qll @@ -14,6 +14,7 @@ private import semmle.code.java.controlflow.Guards private import semmle.code.java.dataflow.StringPrefixes private import semmle.code.java.dataflow.ExternalFlow private import semmle.code.java.dataflow.SSA +private import semmle.code.java.security.ConstantValueSanitizer private import semmle.code.java.security.Sanitizers /** @@ -149,18 +150,8 @@ private predicate isHostComparisonSanitizer(Guard guard, Expr e, boolean branch) ) ) or - exists(MethodCall comparison, Expr checked, Expr allowed | - guard = comparison and - comparison.getMethod().getDeclaringType() instanceof TypeString and - comparison.getMethod().hasName(["equals", "equalsIgnoreCase"]) and - branch = true and - ( - checked = comparison.getQualifier() and allowed = comparison.getArgument(0) - or - checked = comparison.getArgument(0) and allowed = comparison.getQualifier() - ) and - // New cases require a fixed allowlist entry, not another untrusted value. - exists(allowed.(CompileTimeConstantExpr).getStringValue()) and + exists(Expr checked | + nonNullConstantValueGuardChecks(guard, checked, branch) and e = getCheckedHost(checked).getQualifier() ) } diff --git a/java/ql/src/Violations of Best Practice/Dead Code/UnreadLocal.ql b/java/ql/src/Violations of Best Practice/Dead Code/UnreadLocal.ql index ae85f5466132..e7a6f63c2858 100644 --- a/java/ql/src/Violations of Best Practice/Dead Code/UnreadLocal.ql +++ b/java/ql/src/Violations of Best Practice/Dead Code/UnreadLocal.ql @@ -32,5 +32,7 @@ where f.getVariable().getVariable() = v and f.getExpr().getType().(RefType).hasQualifiedName("kotlin.ranges", ["IntRange", "LongRange"]) ) and + // Unnamed variables (`_`) cannot be read. + not v.getDeclExpr().isAnonymous() and not readImplicitly(v) select v, "Variable '" + v + "' is never read." diff --git a/java/ql/src/change-notes/2026-11-03-unread-local-unnamed-variables.md b/java/ql/src/change-notes/2026-11-03-unread-local-unnamed-variables.md new file mode 100644 index 000000000000..8cb1aececb4e --- /dev/null +++ b/java/ql/src/change-notes/2026-11-03-unread-local-unnamed-variables.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The `java/local-variable-is-never-read` query no longer reports unnamed variables (`_`), for example in `case Foo _ ->` patterns, `for (var _ : items)` loops, and `var _ = ...;` declarations. diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index fb657b1fc6f1..e87965c929d8 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 1.12.0 +version: 1.12.1-dev groups: - java - queries diff --git a/java/ql/test/library-tests/default-taint-sanitizer/CONSISTENCY/typeParametersInScope.expected b/java/ql/test/library-tests/default-taint-sanitizer/CONSISTENCY/typeParametersInScope.expected new file mode 100644 index 000000000000..355fb350542e --- /dev/null +++ b/java/ql/test/library-tests/default-taint-sanitizer/CONSISTENCY/typeParametersInScope.expected @@ -0,0 +1 @@ +| Type ConstantValue uses out-of-scope type variable E. Note the Java extractor is known to sometimes do this; the Kotlin extractor should not. | diff --git a/java/ql/test/library-tests/listofconstants/A.java b/java/ql/test/library-tests/default-taint-sanitizer/ConstantValue.java similarity index 61% rename from java/ql/test/library-tests/listofconstants/A.java rename to java/ql/test/library-tests/default-taint-sanitizer/ConstantValue.java index 74129692d71d..a9c422e64c52 100644 --- a/java/ql/test/library-tests/listofconstants/A.java +++ b/java/ql/test/library-tests/default-taint-sanitizer/ConstantValue.java @@ -1,6 +1,6 @@ import java.util.*; -public class A { +public class ConstantValue { private static final Set SEPARATORS = Collections.unmodifiableSet( new HashSet<>(Arrays.asList("\t", "\n", ";"))); @@ -32,4 +32,28 @@ private void testAdd(String inp) { sink(inp); } } + + private void checkEquals(String input) { + if ("AA".equals(input)) { + sink(input); + } + } + + private void checkEqualsIgnoreCase(String input) { + if (input.equalsIgnoreCase("AA")) { + sink(input); + } + } + + private void checkWrongBranch(String input) { + if (!"AA".equals(input)) { + sink(input); + } + } + + private void checkUntrustedValue(String input, String allowed) { + if (allowed.equals(input)) { + sink(input); + } + } } diff --git a/java/ql/test/library-tests/default-taint-sanitizer/test.expected b/java/ql/test/library-tests/default-taint-sanitizer/test.expected new file mode 100644 index 000000000000..f275a0b13b27 --- /dev/null +++ b/java/ql/test/library-tests/default-taint-sanitizer/test.expected @@ -0,0 +1,5 @@ +| ConstantValue.java:12:12:12:20 | separator | +| ConstantValue.java:23:12:23:17 | schema | +| ConstantValue.java:32:12:32:14 | inp | +| ConstantValue.java:38:12:38:16 | input | +| ConstantValue.java:44:12:44:16 | input | diff --git a/java/ql/test/library-tests/listofconstants/test.ql b/java/ql/test/library-tests/default-taint-sanitizer/test.ql similarity index 100% rename from java/ql/test/library-tests/listofconstants/test.ql rename to java/ql/test/library-tests/default-taint-sanitizer/test.ql diff --git a/java/ql/test/library-tests/listofconstants/CONSISTENCY/typeParametersInScope.expected b/java/ql/test/library-tests/listofconstants/CONSISTENCY/typeParametersInScope.expected deleted file mode 100644 index 1ea902154a6e..000000000000 --- a/java/ql/test/library-tests/listofconstants/CONSISTENCY/typeParametersInScope.expected +++ /dev/null @@ -1 +0,0 @@ -| Type A uses out-of-scope type variable E. Note the Java extractor is known to sometimes do this; the Kotlin extractor should not. | diff --git a/java/ql/test/library-tests/listofconstants/test.expected b/java/ql/test/library-tests/listofconstants/test.expected deleted file mode 100644 index 203d64cd46dd..000000000000 --- a/java/ql/test/library-tests/listofconstants/test.expected +++ /dev/null @@ -1,3 +0,0 @@ -| A.java:12:12:12:20 | separator | -| A.java:23:12:23:17 | schema | -| A.java:32:12:32:14 | inp | diff --git a/java/ql/test/query-tests/UnreadLocal/UnreadLocal/UnnamedVariables.java b/java/ql/test/query-tests/UnreadLocal/UnreadLocal/UnnamedVariables.java new file mode 100644 index 000000000000..887e14a19168 --- /dev/null +++ b/java/ql/test/query-tests/UnreadLocal/UnreadLocal/UnnamedVariables.java @@ -0,0 +1,45 @@ +package test; + +import java.util.List; + +public class UnnamedVariables +{ + sealed interface Shape permits Circle, Square {} + record Circle(double radius) implements Shape {} + record Square(double side) implements Shape {} + record Pair(Object left, Object right) {} + + // Not flagged: unnamed variables cannot be read + static int side(Shape shape) + { + return switch (shape) { + case Circle _ -> 0; + case Square s -> (int) s.side(); + }; + } + + static Object left(Object o) + { + if (o instanceof Pair(var left, _)) { + return left; + } + return switch (o) { + case Pair(Object left, Object _) -> left; + default -> null; + }; + } + + static int count(List items) + { + int n = 0; + for (String _ : items) { + n++; + } + return n; + } + + static void removeFirst(List items) + { + var _ = items.remove(0); + } +} diff --git a/java/ql/test/query-tests/UnreadLocal/options b/java/ql/test/query-tests/UnreadLocal/options new file mode 100644 index 000000000000..5011824a5d7a --- /dev/null +++ b/java/ql/test/query-tests/UnreadLocal/options @@ -0,0 +1 @@ +//semmle-extractor-options: --javac-args --release 22 diff --git a/java/ql/test/query-tests/security/CWE-601/semmle/tests/HostComparisonRedirect.java b/java/ql/test/query-tests/security/CWE-601/semmle/tests/HostComparisonRedirect.java index edc5638bec26..2b300e5f1301 100644 --- a/java/ql/test/query-tests/security/CWE-601/semmle/tests/HostComparisonRedirect.java +++ b/java/ql/test/query-tests/security/CWE-601/semmle/tests/HostComparisonRedirect.java @@ -1,5 +1,6 @@ import java.net.URI; import java.util.Arrays; +import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -203,6 +204,46 @@ public void constantAllowlistField(HttpServletRequest request, HttpServletRespon } } + public void constantCollection(HttpServletRequest request, HttpServletResponse response) throws Exception { + URI uri = new URI(request.getParameter("url")); + String host = uri.getHost(); + if (Set.of("example.com", "example.org").contains(host)) { + response.sendRedirect(uri.toString()); + } + } + + public void normalizedConstantCollection(HttpServletRequest request, HttpServletResponse response) throws Exception { + URI uri = new URI(request.getParameter("url")); + String host = uri.getHost(); + if (Set.of("EXAMPLE.COM", "EXAMPLE.ORG").contains(host.toUpperCase())) { + response.sendRedirect(uri.toString()); + } + } + + public void nullContainingCollection(HttpServletRequest request, HttpServletResponse response) throws Exception { + URI uri = new URI(request.getParameter("url")); // $ Source + String host = uri.getHost(); + if (Arrays.asList("example.com", null).contains(host)) { + response.sendRedirect(uri.toString()); // $ Alert + } + } + + public void nullContainingCollectionWithNonNullHost(HttpServletRequest request, HttpServletResponse response) throws Exception { + URI uri = new URI(request.getParameter("url")); + String host = uri.getHost(); + if (host != null && Arrays.asList("example.com", null).contains(host)) { + response.sendRedirect(uri.toString()); + } + } + + public void untrustedCollection(HttpServletRequest request, HttpServletResponse response) throws Exception { + URI uri = new URI(request.getParameter("url")); // $ Source + String host = uri.getHost(); + if (Set.of(request.getParameter("allowed")).contains(host)) { + response.sendRedirect(uri.toString()); // $ Alert + } + } + public void orBypass(HttpServletRequest request, HttpServletResponse response, boolean skip) throws Exception { URI uri = new URI(request.getParameter("url")); // $ Source String host = uri.getHost(); diff --git a/java/ql/test/query-tests/security/CWE-601/semmle/tests/UrlRedirect.expected b/java/ql/test/query-tests/security/CWE-601/semmle/tests/UrlRedirect.expected index 7a16ee15c617..c677916dd36d 100644 --- a/java/ql/test/query-tests/security/CWE-601/semmle/tests/UrlRedirect.expected +++ b/java/ql/test/query-tests/security/CWE-601/semmle/tests/UrlRedirect.expected @@ -1,21 +1,23 @@ #select -| HostComparisonRedirect.java:9:31:9:44 | toString(...) | HostComparisonRedirect.java:8:27:8:53 | getParameter(...) : String | HostComparisonRedirect.java:9:31:9:44 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:8:27:8:53 | getParameter(...) | user-provided value | -| HostComparisonRedirect.java:52:35:52:48 | toString(...) | HostComparisonRedirect.java:50:27:50:53 | getParameter(...) : String | HostComparisonRedirect.java:52:35:52:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:50:27:50:53 | getParameter(...) | user-provided value | -| HostComparisonRedirect.java:59:35:59:48 | toString(...) | HostComparisonRedirect.java:57:27:57:53 | getParameter(...) : String | HostComparisonRedirect.java:59:35:59:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:57:27:57:53 | getParameter(...) | user-provided value | -| HostComparisonRedirect.java:70:35:70:48 | toString(...) | HostComparisonRedirect.java:68:27:68:53 | getParameter(...) : String | HostComparisonRedirect.java:70:35:70:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:68:27:68:53 | getParameter(...) | user-provided value | -| HostComparisonRedirect.java:86:35:86:48 | toString(...) | HostComparisonRedirect.java:84:27:84:53 | getParameter(...) : String | HostComparisonRedirect.java:86:35:86:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:84:27:84:53 | getParameter(...) | user-provided value | -| HostComparisonRedirect.java:94:35:94:49 | toString(...) | HostComparisonRedirect.java:92:28:92:54 | getParameter(...) : String | HostComparisonRedirect.java:94:35:94:49 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:92:28:92:54 | getParameter(...) | user-provided value | -| HostComparisonRedirect.java:105:35:105:48 | toString(...) | HostComparisonRedirect.java:103:27:103:53 | getParameter(...) : String | HostComparisonRedirect.java:105:35:105:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:103:27:103:53 | getParameter(...) | user-provided value | -| HostComparisonRedirect.java:113:35:113:49 | toString(...) | HostComparisonRedirect.java:111:28:111:54 | getParameter(...) : String | HostComparisonRedirect.java:113:35:113:49 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:111:28:111:54 | getParameter(...) | user-provided value | -| HostComparisonRedirect.java:122:35:122:48 | toString(...) | HostComparisonRedirect.java:118:27:118:53 | getParameter(...) : String | HostComparisonRedirect.java:122:35:122:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:118:27:118:53 | getParameter(...) | user-provided value | -| HostComparisonRedirect.java:133:35:133:48 | toString(...) | HostComparisonRedirect.java:127:27:127:53 | getParameter(...) : String | HostComparisonRedirect.java:133:35:133:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:127:27:127:53 | getParameter(...) | user-provided value | -| HostComparisonRedirect.java:142:35:142:48 | toString(...) | HostComparisonRedirect.java:140:23:140:49 | getParameter(...) : String | HostComparisonRedirect.java:142:35:142:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:140:23:140:49 | getParameter(...) | user-provided value | -| HostComparisonRedirect.java:149:35:149:48 | toString(...) | HostComparisonRedirect.java:147:27:147:53 | getParameter(...) : String | HostComparisonRedirect.java:149:35:149:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:147:27:147:53 | getParameter(...) | user-provided value | -| HostComparisonRedirect.java:156:35:156:48 | toString(...) | HostComparisonRedirect.java:154:27:154:53 | getParameter(...) : String | HostComparisonRedirect.java:156:35:156:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:154:27:154:53 | getParameter(...) | user-provided value | -| HostComparisonRedirect.java:184:39:184:52 | toString(...) | HostComparisonRedirect.java:177:27:177:53 | getParameter(...) : String | HostComparisonRedirect.java:184:39:184:52 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:177:27:177:53 | getParameter(...) | user-provided value | -| HostComparisonRedirect.java:210:35:210:48 | toString(...) | HostComparisonRedirect.java:207:27:207:53 | getParameter(...) : String | HostComparisonRedirect.java:210:35:210:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:207:27:207:53 | getParameter(...) | user-provided value | -| HostComparisonRedirect.java:236:35:236:48 | toString(...) | HostComparisonRedirect.java:232:27:232:53 | getParameter(...) : String | HostComparisonRedirect.java:236:35:236:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:232:27:232:53 | getParameter(...) | user-provided value | -| HostComparisonRedirect.java:245:35:245:48 | toString(...) | HostComparisonRedirect.java:241:27:241:53 | getParameter(...) : String | HostComparisonRedirect.java:245:35:245:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:241:27:241:53 | getParameter(...) | user-provided value | +| HostComparisonRedirect.java:10:31:10:44 | toString(...) | HostComparisonRedirect.java:9:27:9:53 | getParameter(...) : String | HostComparisonRedirect.java:10:31:10:44 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:9:27:9:53 | getParameter(...) | user-provided value | +| HostComparisonRedirect.java:53:35:53:48 | toString(...) | HostComparisonRedirect.java:51:27:51:53 | getParameter(...) : String | HostComparisonRedirect.java:53:35:53:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:51:27:51:53 | getParameter(...) | user-provided value | +| HostComparisonRedirect.java:60:35:60:48 | toString(...) | HostComparisonRedirect.java:58:27:58:53 | getParameter(...) : String | HostComparisonRedirect.java:60:35:60:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:58:27:58:53 | getParameter(...) | user-provided value | +| HostComparisonRedirect.java:71:35:71:48 | toString(...) | HostComparisonRedirect.java:69:27:69:53 | getParameter(...) : String | HostComparisonRedirect.java:71:35:71:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:69:27:69:53 | getParameter(...) | user-provided value | +| HostComparisonRedirect.java:87:35:87:48 | toString(...) | HostComparisonRedirect.java:85:27:85:53 | getParameter(...) : String | HostComparisonRedirect.java:87:35:87:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:85:27:85:53 | getParameter(...) | user-provided value | +| HostComparisonRedirect.java:95:35:95:49 | toString(...) | HostComparisonRedirect.java:93:28:93:54 | getParameter(...) : String | HostComparisonRedirect.java:95:35:95:49 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:93:28:93:54 | getParameter(...) | user-provided value | +| HostComparisonRedirect.java:106:35:106:48 | toString(...) | HostComparisonRedirect.java:104:27:104:53 | getParameter(...) : String | HostComparisonRedirect.java:106:35:106:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:104:27:104:53 | getParameter(...) | user-provided value | +| HostComparisonRedirect.java:114:35:114:49 | toString(...) | HostComparisonRedirect.java:112:28:112:54 | getParameter(...) : String | HostComparisonRedirect.java:114:35:114:49 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:112:28:112:54 | getParameter(...) | user-provided value | +| HostComparisonRedirect.java:123:35:123:48 | toString(...) | HostComparisonRedirect.java:119:27:119:53 | getParameter(...) : String | HostComparisonRedirect.java:123:35:123:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:119:27:119:53 | getParameter(...) | user-provided value | +| HostComparisonRedirect.java:134:35:134:48 | toString(...) | HostComparisonRedirect.java:128:27:128:53 | getParameter(...) : String | HostComparisonRedirect.java:134:35:134:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:128:27:128:53 | getParameter(...) | user-provided value | +| HostComparisonRedirect.java:143:35:143:48 | toString(...) | HostComparisonRedirect.java:141:23:141:49 | getParameter(...) : String | HostComparisonRedirect.java:143:35:143:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:141:23:141:49 | getParameter(...) | user-provided value | +| HostComparisonRedirect.java:150:35:150:48 | toString(...) | HostComparisonRedirect.java:148:27:148:53 | getParameter(...) : String | HostComparisonRedirect.java:150:35:150:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:148:27:148:53 | getParameter(...) | user-provided value | +| HostComparisonRedirect.java:157:35:157:48 | toString(...) | HostComparisonRedirect.java:155:27:155:53 | getParameter(...) : String | HostComparisonRedirect.java:157:35:157:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:155:27:155:53 | getParameter(...) | user-provided value | +| HostComparisonRedirect.java:185:39:185:52 | toString(...) | HostComparisonRedirect.java:178:27:178:53 | getParameter(...) : String | HostComparisonRedirect.java:185:39:185:52 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:178:27:178:53 | getParameter(...) | user-provided value | +| HostComparisonRedirect.java:227:35:227:48 | toString(...) | HostComparisonRedirect.java:224:27:224:53 | getParameter(...) : String | HostComparisonRedirect.java:227:35:227:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:224:27:224:53 | getParameter(...) | user-provided value | +| HostComparisonRedirect.java:243:35:243:48 | toString(...) | HostComparisonRedirect.java:240:27:240:53 | getParameter(...) : String | HostComparisonRedirect.java:243:35:243:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:240:27:240:53 | getParameter(...) | user-provided value | +| HostComparisonRedirect.java:251:35:251:48 | toString(...) | HostComparisonRedirect.java:248:27:248:53 | getParameter(...) : String | HostComparisonRedirect.java:251:35:251:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:248:27:248:53 | getParameter(...) | user-provided value | +| HostComparisonRedirect.java:277:35:277:48 | toString(...) | HostComparisonRedirect.java:273:27:273:53 | getParameter(...) : String | HostComparisonRedirect.java:277:35:277:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:273:27:273:53 | getParameter(...) | user-provided value | +| HostComparisonRedirect.java:286:35:286:48 | toString(...) | HostComparisonRedirect.java:282:27:282:53 | getParameter(...) : String | HostComparisonRedirect.java:286:35:286:48 | toString(...) | Untrusted URL redirection depends on a $@. | HostComparisonRedirect.java:282:27:282:53 | getParameter(...) | user-provided value | | MicronautUrlRedirect.java:14:38:14:55 | create(...) | MicronautUrlRedirect.java:12:39:12:63 | target : String | MicronautUrlRedirect.java:14:38:14:55 | create(...) | Untrusted URL redirection depends on a $@. | MicronautUrlRedirect.java:12:39:12:63 | target | user-provided value | | MicronautUrlRedirect.java:28:47:28:64 | create(...) | MicronautUrlRedirect.java:27:45:27:69 | target : String | MicronautUrlRedirect.java:28:47:28:64 | create(...) | Untrusted URL redirection depends on a $@. | MicronautUrlRedirect.java:27:45:27:69 | target | user-provided value | | MicronautUrlRedirect.java:33:38:33:55 | create(...) | MicronautUrlRedirect.java:32:44:32:68 | target : String | MicronautUrlRedirect.java:33:38:33:55 | create(...) | Untrusted URL redirection depends on a $@. | MicronautUrlRedirect.java:32:44:32:68 | target | user-provided value | @@ -27,57 +29,63 @@ | UrlRedirect.java:42:43:42:72 | getParameter(...) | UrlRedirect.java:42:43:42:72 | getParameter(...) | UrlRedirect.java:42:43:42:72 | getParameter(...) | Untrusted URL redirection depends on a $@. | UrlRedirect.java:42:43:42:72 | getParameter(...) | user-provided value | | mad/Test.java:14:22:14:38 | (...)... | mad/Test.java:9:16:9:41 | getParameter(...) : String | mad/Test.java:14:22:14:38 | (...)... | Untrusted URL redirection depends on a $@. | mad/Test.java:9:16:9:41 | getParameter(...) | user-provided value | edges -| HostComparisonRedirect.java:8:19:8:54 | new URI(...) : URI | HostComparisonRedirect.java:9:31:9:33 | uri : URI | provenance | | -| HostComparisonRedirect.java:8:27:8:53 | getParameter(...) : String | HostComparisonRedirect.java:8:19:8:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | -| HostComparisonRedirect.java:9:31:9:33 | uri : URI | HostComparisonRedirect.java:9:31:9:44 | toString(...) | provenance | MaD:10 | -| HostComparisonRedirect.java:50:19:50:54 | new URI(...) : URI | HostComparisonRedirect.java:52:35:52:37 | uri : URI | provenance | | -| HostComparisonRedirect.java:50:27:50:53 | getParameter(...) : String | HostComparisonRedirect.java:50:19:50:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | -| HostComparisonRedirect.java:52:35:52:37 | uri : URI | HostComparisonRedirect.java:52:35:52:48 | toString(...) | provenance | MaD:10 | -| HostComparisonRedirect.java:57:19:57:54 | new URI(...) : URI | HostComparisonRedirect.java:59:35:59:37 | uri : URI | provenance | | -| HostComparisonRedirect.java:57:27:57:53 | getParameter(...) : String | HostComparisonRedirect.java:57:19:57:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | -| HostComparisonRedirect.java:59:35:59:37 | uri : URI | HostComparisonRedirect.java:59:35:59:48 | toString(...) | provenance | MaD:10 | -| HostComparisonRedirect.java:68:19:68:54 | new URI(...) : URI | HostComparisonRedirect.java:70:35:70:37 | uri : URI | provenance | | -| HostComparisonRedirect.java:68:27:68:53 | getParameter(...) : String | HostComparisonRedirect.java:68:19:68:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | -| HostComparisonRedirect.java:70:35:70:37 | uri : URI | HostComparisonRedirect.java:70:35:70:48 | toString(...) | provenance | MaD:10 | -| HostComparisonRedirect.java:84:19:84:54 | new URI(...) : URI | HostComparisonRedirect.java:86:35:86:37 | uri : URI | provenance | | -| HostComparisonRedirect.java:84:27:84:53 | getParameter(...) : String | HostComparisonRedirect.java:84:19:84:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | -| HostComparisonRedirect.java:86:35:86:37 | uri : URI | HostComparisonRedirect.java:86:35:86:48 | toString(...) | provenance | MaD:10 | -| HostComparisonRedirect.java:92:20:92:55 | new URI(...) : URI | HostComparisonRedirect.java:94:35:94:38 | used : URI | provenance | | -| HostComparisonRedirect.java:92:28:92:54 | getParameter(...) : String | HostComparisonRedirect.java:92:20:92:55 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | -| HostComparisonRedirect.java:94:35:94:38 | used : URI | HostComparisonRedirect.java:94:35:94:49 | toString(...) | provenance | MaD:10 | -| HostComparisonRedirect.java:103:19:103:54 | new URI(...) : URI | HostComparisonRedirect.java:105:35:105:37 | uri : URI | provenance | | -| HostComparisonRedirect.java:103:27:103:53 | getParameter(...) : String | HostComparisonRedirect.java:103:19:103:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | -| HostComparisonRedirect.java:105:35:105:37 | uri : URI | HostComparisonRedirect.java:105:35:105:48 | toString(...) | provenance | MaD:10 | -| HostComparisonRedirect.java:111:20:111:55 | new URI(...) : URI | HostComparisonRedirect.java:113:35:113:38 | used : URI | provenance | | -| HostComparisonRedirect.java:111:28:111:54 | getParameter(...) : String | HostComparisonRedirect.java:111:20:111:55 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | -| HostComparisonRedirect.java:113:35:113:38 | used : URI | HostComparisonRedirect.java:113:35:113:49 | toString(...) | provenance | MaD:10 | -| HostComparisonRedirect.java:118:19:118:54 | new URI(...) : URI | HostComparisonRedirect.java:122:35:122:37 | uri : URI | provenance | | -| HostComparisonRedirect.java:118:27:118:53 | getParameter(...) : String | HostComparisonRedirect.java:118:19:118:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | -| HostComparisonRedirect.java:122:35:122:37 | uri : URI | HostComparisonRedirect.java:122:35:122:48 | toString(...) | provenance | MaD:10 | -| HostComparisonRedirect.java:127:19:127:54 | new URI(...) : URI | HostComparisonRedirect.java:133:35:133:37 | uri : URI | provenance | | -| HostComparisonRedirect.java:127:27:127:53 | getParameter(...) : String | HostComparisonRedirect.java:127:19:127:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | -| HostComparisonRedirect.java:133:35:133:37 | uri : URI | HostComparisonRedirect.java:133:35:133:48 | toString(...) | provenance | MaD:10 | -| HostComparisonRedirect.java:140:15:140:50 | new URI(...) : URI | HostComparisonRedirect.java:142:35:142:37 | uri : URI | provenance | | -| HostComparisonRedirect.java:140:23:140:49 | getParameter(...) : String | HostComparisonRedirect.java:140:15:140:50 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | -| HostComparisonRedirect.java:142:35:142:37 | uri : URI | HostComparisonRedirect.java:142:35:142:48 | toString(...) | provenance | MaD:10 | -| HostComparisonRedirect.java:147:19:147:54 | new URI(...) : URI | HostComparisonRedirect.java:149:35:149:37 | uri : URI | provenance | | -| HostComparisonRedirect.java:147:27:147:53 | getParameter(...) : String | HostComparisonRedirect.java:147:19:147:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | -| HostComparisonRedirect.java:149:35:149:37 | uri : URI | HostComparisonRedirect.java:149:35:149:48 | toString(...) | provenance | MaD:10 | -| HostComparisonRedirect.java:154:19:154:54 | new URI(...) : URI | HostComparisonRedirect.java:156:35:156:37 | uri : URI | provenance | | -| HostComparisonRedirect.java:154:27:154:53 | getParameter(...) : String | HostComparisonRedirect.java:154:19:154:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | -| HostComparisonRedirect.java:156:35:156:37 | uri : URI | HostComparisonRedirect.java:156:35:156:48 | toString(...) | provenance | MaD:10 | -| HostComparisonRedirect.java:177:19:177:54 | new URI(...) : URI | HostComparisonRedirect.java:184:39:184:41 | uri : URI | provenance | | -| HostComparisonRedirect.java:177:27:177:53 | getParameter(...) : String | HostComparisonRedirect.java:177:19:177:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | -| HostComparisonRedirect.java:184:39:184:41 | uri : URI | HostComparisonRedirect.java:184:39:184:52 | toString(...) | provenance | MaD:10 | -| HostComparisonRedirect.java:207:19:207:54 | new URI(...) : URI | HostComparisonRedirect.java:210:35:210:37 | uri : URI | provenance | | -| HostComparisonRedirect.java:207:27:207:53 | getParameter(...) : String | HostComparisonRedirect.java:207:19:207:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | -| HostComparisonRedirect.java:210:35:210:37 | uri : URI | HostComparisonRedirect.java:210:35:210:48 | toString(...) | provenance | MaD:10 | -| HostComparisonRedirect.java:232:19:232:54 | new URI(...) : URI | HostComparisonRedirect.java:236:35:236:37 | uri : URI | provenance | | -| HostComparisonRedirect.java:232:27:232:53 | getParameter(...) : String | HostComparisonRedirect.java:232:19:232:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | -| HostComparisonRedirect.java:236:35:236:37 | uri : URI | HostComparisonRedirect.java:236:35:236:48 | toString(...) | provenance | MaD:10 | -| HostComparisonRedirect.java:241:19:241:54 | new URI(...) : URI | HostComparisonRedirect.java:245:35:245:37 | uri : URI | provenance | | -| HostComparisonRedirect.java:241:27:241:53 | getParameter(...) : String | HostComparisonRedirect.java:241:19:241:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | -| HostComparisonRedirect.java:245:35:245:37 | uri : URI | HostComparisonRedirect.java:245:35:245:48 | toString(...) | provenance | MaD:10 | +| HostComparisonRedirect.java:9:19:9:54 | new URI(...) : URI | HostComparisonRedirect.java:10:31:10:33 | uri : URI | provenance | | +| HostComparisonRedirect.java:9:27:9:53 | getParameter(...) : String | HostComparisonRedirect.java:9:19:9:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | +| HostComparisonRedirect.java:10:31:10:33 | uri : URI | HostComparisonRedirect.java:10:31:10:44 | toString(...) | provenance | MaD:10 | +| HostComparisonRedirect.java:51:19:51:54 | new URI(...) : URI | HostComparisonRedirect.java:53:35:53:37 | uri : URI | provenance | | +| HostComparisonRedirect.java:51:27:51:53 | getParameter(...) : String | HostComparisonRedirect.java:51:19:51:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | +| HostComparisonRedirect.java:53:35:53:37 | uri : URI | HostComparisonRedirect.java:53:35:53:48 | toString(...) | provenance | MaD:10 | +| HostComparisonRedirect.java:58:19:58:54 | new URI(...) : URI | HostComparisonRedirect.java:60:35:60:37 | uri : URI | provenance | | +| HostComparisonRedirect.java:58:27:58:53 | getParameter(...) : String | HostComparisonRedirect.java:58:19:58:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | +| HostComparisonRedirect.java:60:35:60:37 | uri : URI | HostComparisonRedirect.java:60:35:60:48 | toString(...) | provenance | MaD:10 | +| HostComparisonRedirect.java:69:19:69:54 | new URI(...) : URI | HostComparisonRedirect.java:71:35:71:37 | uri : URI | provenance | | +| HostComparisonRedirect.java:69:27:69:53 | getParameter(...) : String | HostComparisonRedirect.java:69:19:69:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | +| HostComparisonRedirect.java:71:35:71:37 | uri : URI | HostComparisonRedirect.java:71:35:71:48 | toString(...) | provenance | MaD:10 | +| HostComparisonRedirect.java:85:19:85:54 | new URI(...) : URI | HostComparisonRedirect.java:87:35:87:37 | uri : URI | provenance | | +| HostComparisonRedirect.java:85:27:85:53 | getParameter(...) : String | HostComparisonRedirect.java:85:19:85:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | +| HostComparisonRedirect.java:87:35:87:37 | uri : URI | HostComparisonRedirect.java:87:35:87:48 | toString(...) | provenance | MaD:10 | +| HostComparisonRedirect.java:93:20:93:55 | new URI(...) : URI | HostComparisonRedirect.java:95:35:95:38 | used : URI | provenance | | +| HostComparisonRedirect.java:93:28:93:54 | getParameter(...) : String | HostComparisonRedirect.java:93:20:93:55 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | +| HostComparisonRedirect.java:95:35:95:38 | used : URI | HostComparisonRedirect.java:95:35:95:49 | toString(...) | provenance | MaD:10 | +| HostComparisonRedirect.java:104:19:104:54 | new URI(...) : URI | HostComparisonRedirect.java:106:35:106:37 | uri : URI | provenance | | +| HostComparisonRedirect.java:104:27:104:53 | getParameter(...) : String | HostComparisonRedirect.java:104:19:104:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | +| HostComparisonRedirect.java:106:35:106:37 | uri : URI | HostComparisonRedirect.java:106:35:106:48 | toString(...) | provenance | MaD:10 | +| HostComparisonRedirect.java:112:20:112:55 | new URI(...) : URI | HostComparisonRedirect.java:114:35:114:38 | used : URI | provenance | | +| HostComparisonRedirect.java:112:28:112:54 | getParameter(...) : String | HostComparisonRedirect.java:112:20:112:55 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | +| HostComparisonRedirect.java:114:35:114:38 | used : URI | HostComparisonRedirect.java:114:35:114:49 | toString(...) | provenance | MaD:10 | +| HostComparisonRedirect.java:119:19:119:54 | new URI(...) : URI | HostComparisonRedirect.java:123:35:123:37 | uri : URI | provenance | | +| HostComparisonRedirect.java:119:27:119:53 | getParameter(...) : String | HostComparisonRedirect.java:119:19:119:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | +| HostComparisonRedirect.java:123:35:123:37 | uri : URI | HostComparisonRedirect.java:123:35:123:48 | toString(...) | provenance | MaD:10 | +| HostComparisonRedirect.java:128:19:128:54 | new URI(...) : URI | HostComparisonRedirect.java:134:35:134:37 | uri : URI | provenance | | +| HostComparisonRedirect.java:128:27:128:53 | getParameter(...) : String | HostComparisonRedirect.java:128:19:128:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | +| HostComparisonRedirect.java:134:35:134:37 | uri : URI | HostComparisonRedirect.java:134:35:134:48 | toString(...) | provenance | MaD:10 | +| HostComparisonRedirect.java:141:15:141:50 | new URI(...) : URI | HostComparisonRedirect.java:143:35:143:37 | uri : URI | provenance | | +| HostComparisonRedirect.java:141:23:141:49 | getParameter(...) : String | HostComparisonRedirect.java:141:15:141:50 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | +| HostComparisonRedirect.java:143:35:143:37 | uri : URI | HostComparisonRedirect.java:143:35:143:48 | toString(...) | provenance | MaD:10 | +| HostComparisonRedirect.java:148:19:148:54 | new URI(...) : URI | HostComparisonRedirect.java:150:35:150:37 | uri : URI | provenance | | +| HostComparisonRedirect.java:148:27:148:53 | getParameter(...) : String | HostComparisonRedirect.java:148:19:148:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | +| HostComparisonRedirect.java:150:35:150:37 | uri : URI | HostComparisonRedirect.java:150:35:150:48 | toString(...) | provenance | MaD:10 | +| HostComparisonRedirect.java:155:19:155:54 | new URI(...) : URI | HostComparisonRedirect.java:157:35:157:37 | uri : URI | provenance | | +| HostComparisonRedirect.java:155:27:155:53 | getParameter(...) : String | HostComparisonRedirect.java:155:19:155:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | +| HostComparisonRedirect.java:157:35:157:37 | uri : URI | HostComparisonRedirect.java:157:35:157:48 | toString(...) | provenance | MaD:10 | +| HostComparisonRedirect.java:178:19:178:54 | new URI(...) : URI | HostComparisonRedirect.java:185:39:185:41 | uri : URI | provenance | | +| HostComparisonRedirect.java:178:27:178:53 | getParameter(...) : String | HostComparisonRedirect.java:178:19:178:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | +| HostComparisonRedirect.java:185:39:185:41 | uri : URI | HostComparisonRedirect.java:185:39:185:52 | toString(...) | provenance | MaD:10 | +| HostComparisonRedirect.java:224:19:224:54 | new URI(...) : URI | HostComparisonRedirect.java:227:35:227:37 | uri : URI | provenance | | +| HostComparisonRedirect.java:224:27:224:53 | getParameter(...) : String | HostComparisonRedirect.java:224:19:224:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | +| HostComparisonRedirect.java:227:35:227:37 | uri : URI | HostComparisonRedirect.java:227:35:227:48 | toString(...) | provenance | MaD:10 | +| HostComparisonRedirect.java:240:19:240:54 | new URI(...) : URI | HostComparisonRedirect.java:243:35:243:37 | uri : URI | provenance | | +| HostComparisonRedirect.java:240:27:240:53 | getParameter(...) : String | HostComparisonRedirect.java:240:19:240:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | +| HostComparisonRedirect.java:243:35:243:37 | uri : URI | HostComparisonRedirect.java:243:35:243:48 | toString(...) | provenance | MaD:10 | +| HostComparisonRedirect.java:248:19:248:54 | new URI(...) : URI | HostComparisonRedirect.java:251:35:251:37 | uri : URI | provenance | | +| HostComparisonRedirect.java:248:27:248:53 | getParameter(...) : String | HostComparisonRedirect.java:248:19:248:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | +| HostComparisonRedirect.java:251:35:251:37 | uri : URI | HostComparisonRedirect.java:251:35:251:48 | toString(...) | provenance | MaD:10 | +| HostComparisonRedirect.java:273:19:273:54 | new URI(...) : URI | HostComparisonRedirect.java:277:35:277:37 | uri : URI | provenance | | +| HostComparisonRedirect.java:273:27:273:53 | getParameter(...) : String | HostComparisonRedirect.java:273:19:273:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | +| HostComparisonRedirect.java:277:35:277:37 | uri : URI | HostComparisonRedirect.java:277:35:277:48 | toString(...) | provenance | MaD:10 | +| HostComparisonRedirect.java:282:19:282:54 | new URI(...) : URI | HostComparisonRedirect.java:286:35:286:37 | uri : URI | provenance | | +| HostComparisonRedirect.java:282:27:282:53 | getParameter(...) : String | HostComparisonRedirect.java:282:19:282:54 | new URI(...) : URI | provenance | Src:MaD:6 MaD:8 | +| HostComparisonRedirect.java:286:35:286:37 | uri : URI | HostComparisonRedirect.java:286:35:286:48 | toString(...) | provenance | MaD:10 | | MicronautUrlRedirect.java:12:39:12:63 | target : String | MicronautUrlRedirect.java:14:49:14:54 | target : String | provenance | | | MicronautUrlRedirect.java:14:49:14:54 | target : String | MicronautUrlRedirect.java:14:38:14:55 | create(...) | provenance | MaD:9 Sink:MaD:2 | | MicronautUrlRedirect.java:27:45:27:69 | target : String | MicronautUrlRedirect.java:28:58:28:63 | target : String | provenance | | @@ -104,74 +112,82 @@ models | 9 | Summary: java.net; URI; false; create; ; ; Argument[0]; ReturnValue; taint; manual | | 10 | Summary: java.net; URI; false; toString; ; ; Argument[this]; ReturnValue; taint; manual | nodes -| HostComparisonRedirect.java:8:19:8:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparisonRedirect.java:8:27:8:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparisonRedirect.java:9:31:9:33 | uri : URI | semmle.label | uri : URI | -| HostComparisonRedirect.java:9:31:9:44 | toString(...) | semmle.label | toString(...) | -| HostComparisonRedirect.java:50:19:50:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparisonRedirect.java:50:27:50:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparisonRedirect.java:52:35:52:37 | uri : URI | semmle.label | uri : URI | -| HostComparisonRedirect.java:52:35:52:48 | toString(...) | semmle.label | toString(...) | -| HostComparisonRedirect.java:57:19:57:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparisonRedirect.java:57:27:57:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparisonRedirect.java:59:35:59:37 | uri : URI | semmle.label | uri : URI | -| HostComparisonRedirect.java:59:35:59:48 | toString(...) | semmle.label | toString(...) | -| HostComparisonRedirect.java:68:19:68:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparisonRedirect.java:68:27:68:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparisonRedirect.java:70:35:70:37 | uri : URI | semmle.label | uri : URI | -| HostComparisonRedirect.java:70:35:70:48 | toString(...) | semmle.label | toString(...) | -| HostComparisonRedirect.java:84:19:84:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparisonRedirect.java:84:27:84:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparisonRedirect.java:86:35:86:37 | uri : URI | semmle.label | uri : URI | -| HostComparisonRedirect.java:86:35:86:48 | toString(...) | semmle.label | toString(...) | -| HostComparisonRedirect.java:92:20:92:55 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparisonRedirect.java:92:28:92:54 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparisonRedirect.java:94:35:94:38 | used : URI | semmle.label | used : URI | -| HostComparisonRedirect.java:94:35:94:49 | toString(...) | semmle.label | toString(...) | -| HostComparisonRedirect.java:103:19:103:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparisonRedirect.java:103:27:103:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparisonRedirect.java:105:35:105:37 | uri : URI | semmle.label | uri : URI | -| HostComparisonRedirect.java:105:35:105:48 | toString(...) | semmle.label | toString(...) | -| HostComparisonRedirect.java:111:20:111:55 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparisonRedirect.java:111:28:111:54 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparisonRedirect.java:113:35:113:38 | used : URI | semmle.label | used : URI | -| HostComparisonRedirect.java:113:35:113:49 | toString(...) | semmle.label | toString(...) | -| HostComparisonRedirect.java:118:19:118:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparisonRedirect.java:118:27:118:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparisonRedirect.java:122:35:122:37 | uri : URI | semmle.label | uri : URI | -| HostComparisonRedirect.java:122:35:122:48 | toString(...) | semmle.label | toString(...) | -| HostComparisonRedirect.java:127:19:127:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparisonRedirect.java:127:27:127:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparisonRedirect.java:133:35:133:37 | uri : URI | semmle.label | uri : URI | -| HostComparisonRedirect.java:133:35:133:48 | toString(...) | semmle.label | toString(...) | -| HostComparisonRedirect.java:140:15:140:50 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparisonRedirect.java:140:23:140:49 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparisonRedirect.java:142:35:142:37 | uri : URI | semmle.label | uri : URI | -| HostComparisonRedirect.java:142:35:142:48 | toString(...) | semmle.label | toString(...) | -| HostComparisonRedirect.java:147:19:147:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparisonRedirect.java:147:27:147:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparisonRedirect.java:149:35:149:37 | uri : URI | semmle.label | uri : URI | -| HostComparisonRedirect.java:149:35:149:48 | toString(...) | semmle.label | toString(...) | -| HostComparisonRedirect.java:154:19:154:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparisonRedirect.java:154:27:154:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparisonRedirect.java:156:35:156:37 | uri : URI | semmle.label | uri : URI | -| HostComparisonRedirect.java:156:35:156:48 | toString(...) | semmle.label | toString(...) | -| HostComparisonRedirect.java:177:19:177:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparisonRedirect.java:177:27:177:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparisonRedirect.java:184:39:184:41 | uri : URI | semmle.label | uri : URI | -| HostComparisonRedirect.java:184:39:184:52 | toString(...) | semmle.label | toString(...) | -| HostComparisonRedirect.java:207:19:207:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparisonRedirect.java:207:27:207:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparisonRedirect.java:210:35:210:37 | uri : URI | semmle.label | uri : URI | -| HostComparisonRedirect.java:210:35:210:48 | toString(...) | semmle.label | toString(...) | -| HostComparisonRedirect.java:232:19:232:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparisonRedirect.java:232:27:232:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparisonRedirect.java:236:35:236:37 | uri : URI | semmle.label | uri : URI | -| HostComparisonRedirect.java:236:35:236:48 | toString(...) | semmle.label | toString(...) | -| HostComparisonRedirect.java:241:19:241:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparisonRedirect.java:241:27:241:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparisonRedirect.java:245:35:245:37 | uri : URI | semmle.label | uri : URI | -| HostComparisonRedirect.java:245:35:245:48 | toString(...) | semmle.label | toString(...) | +| HostComparisonRedirect.java:9:19:9:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparisonRedirect.java:9:27:9:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparisonRedirect.java:10:31:10:33 | uri : URI | semmle.label | uri : URI | +| HostComparisonRedirect.java:10:31:10:44 | toString(...) | semmle.label | toString(...) | +| HostComparisonRedirect.java:51:19:51:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparisonRedirect.java:51:27:51:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparisonRedirect.java:53:35:53:37 | uri : URI | semmle.label | uri : URI | +| HostComparisonRedirect.java:53:35:53:48 | toString(...) | semmle.label | toString(...) | +| HostComparisonRedirect.java:58:19:58:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparisonRedirect.java:58:27:58:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparisonRedirect.java:60:35:60:37 | uri : URI | semmle.label | uri : URI | +| HostComparisonRedirect.java:60:35:60:48 | toString(...) | semmle.label | toString(...) | +| HostComparisonRedirect.java:69:19:69:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparisonRedirect.java:69:27:69:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparisonRedirect.java:71:35:71:37 | uri : URI | semmle.label | uri : URI | +| HostComparisonRedirect.java:71:35:71:48 | toString(...) | semmle.label | toString(...) | +| HostComparisonRedirect.java:85:19:85:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparisonRedirect.java:85:27:85:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparisonRedirect.java:87:35:87:37 | uri : URI | semmle.label | uri : URI | +| HostComparisonRedirect.java:87:35:87:48 | toString(...) | semmle.label | toString(...) | +| HostComparisonRedirect.java:93:20:93:55 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparisonRedirect.java:93:28:93:54 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparisonRedirect.java:95:35:95:38 | used : URI | semmle.label | used : URI | +| HostComparisonRedirect.java:95:35:95:49 | toString(...) | semmle.label | toString(...) | +| HostComparisonRedirect.java:104:19:104:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparisonRedirect.java:104:27:104:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparisonRedirect.java:106:35:106:37 | uri : URI | semmle.label | uri : URI | +| HostComparisonRedirect.java:106:35:106:48 | toString(...) | semmle.label | toString(...) | +| HostComparisonRedirect.java:112:20:112:55 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparisonRedirect.java:112:28:112:54 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparisonRedirect.java:114:35:114:38 | used : URI | semmle.label | used : URI | +| HostComparisonRedirect.java:114:35:114:49 | toString(...) | semmle.label | toString(...) | +| HostComparisonRedirect.java:119:19:119:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparisonRedirect.java:119:27:119:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparisonRedirect.java:123:35:123:37 | uri : URI | semmle.label | uri : URI | +| HostComparisonRedirect.java:123:35:123:48 | toString(...) | semmle.label | toString(...) | +| HostComparisonRedirect.java:128:19:128:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparisonRedirect.java:128:27:128:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparisonRedirect.java:134:35:134:37 | uri : URI | semmle.label | uri : URI | +| HostComparisonRedirect.java:134:35:134:48 | toString(...) | semmle.label | toString(...) | +| HostComparisonRedirect.java:141:15:141:50 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparisonRedirect.java:141:23:141:49 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparisonRedirect.java:143:35:143:37 | uri : URI | semmle.label | uri : URI | +| HostComparisonRedirect.java:143:35:143:48 | toString(...) | semmle.label | toString(...) | +| HostComparisonRedirect.java:148:19:148:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparisonRedirect.java:148:27:148:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparisonRedirect.java:150:35:150:37 | uri : URI | semmle.label | uri : URI | +| HostComparisonRedirect.java:150:35:150:48 | toString(...) | semmle.label | toString(...) | +| HostComparisonRedirect.java:155:19:155:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparisonRedirect.java:155:27:155:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparisonRedirect.java:157:35:157:37 | uri : URI | semmle.label | uri : URI | +| HostComparisonRedirect.java:157:35:157:48 | toString(...) | semmle.label | toString(...) | +| HostComparisonRedirect.java:178:19:178:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparisonRedirect.java:178:27:178:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparisonRedirect.java:185:39:185:41 | uri : URI | semmle.label | uri : URI | +| HostComparisonRedirect.java:185:39:185:52 | toString(...) | semmle.label | toString(...) | +| HostComparisonRedirect.java:224:19:224:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparisonRedirect.java:224:27:224:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparisonRedirect.java:227:35:227:37 | uri : URI | semmle.label | uri : URI | +| HostComparisonRedirect.java:227:35:227:48 | toString(...) | semmle.label | toString(...) | +| HostComparisonRedirect.java:240:19:240:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparisonRedirect.java:240:27:240:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparisonRedirect.java:243:35:243:37 | uri : URI | semmle.label | uri : URI | +| HostComparisonRedirect.java:243:35:243:48 | toString(...) | semmle.label | toString(...) | +| HostComparisonRedirect.java:248:19:248:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparisonRedirect.java:248:27:248:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparisonRedirect.java:251:35:251:37 | uri : URI | semmle.label | uri : URI | +| HostComparisonRedirect.java:251:35:251:48 | toString(...) | semmle.label | toString(...) | +| HostComparisonRedirect.java:273:19:273:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparisonRedirect.java:273:27:273:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparisonRedirect.java:277:35:277:37 | uri : URI | semmle.label | uri : URI | +| HostComparisonRedirect.java:277:35:277:48 | toString(...) | semmle.label | toString(...) | +| HostComparisonRedirect.java:282:19:282:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparisonRedirect.java:282:27:282:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparisonRedirect.java:286:35:286:37 | uri : URI | semmle.label | uri : URI | +| HostComparisonRedirect.java:286:35:286:48 | toString(...) | semmle.label | toString(...) | | MicronautUrlRedirect.java:12:39:12:63 | target : String | semmle.label | target : String | | MicronautUrlRedirect.java:14:38:14:55 | create(...) | semmle.label | create(...) | | MicronautUrlRedirect.java:14:49:14:54 | target : String | semmle.label | target : String | diff --git a/java/ql/test/query-tests/security/CWE-918/HostComparison.java b/java/ql/test/query-tests/security/CWE-918/HostComparison.java index 163a74d1d8ae..143d33599c38 100644 --- a/java/ql/test/query-tests/security/CWE-918/HostComparison.java +++ b/java/ql/test/query-tests/security/CWE-918/HostComparison.java @@ -1,5 +1,6 @@ import java.net.URI; import java.util.Arrays; +import java.util.Set; import javax.servlet.http.HttpServletRequest; public class HostComparison { @@ -202,6 +203,46 @@ public void constantAllowlistField(HttpServletRequest request) throws Exception } } + public void constantCollection(HttpServletRequest request) throws Exception { + URI uri = new URI(request.getParameter("url")); + String host = uri.getHost(); + if (Set.of("example.com", "example.org").contains(host)) { + uri.toURL().openConnection(); + } + } + + public void normalizedConstantCollection(HttpServletRequest request) throws Exception { + URI uri = new URI(request.getParameter("url")); + String host = uri.getHost(); + if (Set.of("EXAMPLE.COM", "EXAMPLE.ORG").contains(host.toUpperCase())) { + uri.toURL().openConnection(); + } + } + + public void nullContainingCollection(HttpServletRequest request) throws Exception { + URI uri = new URI(request.getParameter("url")); // $ Source + String host = uri.getHost(); + if (Arrays.asList("example.com", null).contains(host)) { + uri.toURL().openConnection(); // $ Alert + } + } + + public void nullContainingCollectionWithNonNullHost(HttpServletRequest request) throws Exception { + URI uri = new URI(request.getParameter("url")); + String host = uri.getHost(); + if (host != null && Arrays.asList("example.com", null).contains(host)) { + uri.toURL().openConnection(); + } + } + + public void untrustedCollection(HttpServletRequest request) throws Exception { + URI uri = new URI(request.getParameter("url")); // $ Source + String host = uri.getHost(); + if (Set.of(request.getParameter("allowed")).contains(host)) { + uri.toURL().openConnection(); // $ Alert + } + } + public void orBypass(HttpServletRequest request, boolean skip) throws Exception { URI uri = new URI(request.getParameter("url")); // $ Source String host = uri.getHost(); diff --git a/java/ql/test/query-tests/security/CWE-918/RequestForgery.expected b/java/ql/test/query-tests/security/CWE-918/RequestForgery.expected index 3aaa32970e6d..8995e286cef3 100644 --- a/java/ql/test/query-tests/security/CWE-918/RequestForgery.expected +++ b/java/ql/test/query-tests/security/CWE-918/RequestForgery.expected @@ -210,23 +210,25 @@ | ApacheHttpSSRFVersion5.java:388:44:388:46 | uri | ApacheHttpSSRFVersion5.java:372:30:372:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:388:44:388:46 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:372:30:372:56 | getParameter(...) | user-provided value | | ApacheHttpSSRFVersion5.java:390:24:390:26 | uri | ApacheHttpSSRFVersion5.java:372:30:372:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:390:24:390:26 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:372:30:372:56 | getParameter(...) | user-provided value | | ApacheHttpSSRFVersion5.java:394:24:394:26 | uri | ApacheHttpSSRFVersion5.java:372:30:372:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:394:24:394:26 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:372:30:372:56 | getParameter(...) | user-provided value | -| HostComparison.java:8:9:8:19 | toURL(...) | HostComparison.java:7:27:7:53 | getParameter(...) : String | HostComparison.java:8:9:8:19 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:7:27:7:53 | getParameter(...) | user-provided value | -| HostComparison.java:51:13:51:23 | toURL(...) | HostComparison.java:49:27:49:53 | getParameter(...) : String | HostComparison.java:51:13:51:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:49:27:49:53 | getParameter(...) | user-provided value | -| HostComparison.java:58:13:58:23 | toURL(...) | HostComparison.java:56:27:56:53 | getParameter(...) : String | HostComparison.java:58:13:58:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:56:27:56:53 | getParameter(...) | user-provided value | -| HostComparison.java:69:13:69:23 | toURL(...) | HostComparison.java:67:27:67:53 | getParameter(...) : String | HostComparison.java:69:13:69:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:67:27:67:53 | getParameter(...) | user-provided value | -| HostComparison.java:85:13:85:23 | toURL(...) | HostComparison.java:83:27:83:53 | getParameter(...) : String | HostComparison.java:85:13:85:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:83:27:83:53 | getParameter(...) | user-provided value | -| HostComparison.java:93:13:93:24 | toURL(...) | HostComparison.java:91:28:91:54 | getParameter(...) : String | HostComparison.java:93:13:93:24 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:91:28:91:54 | getParameter(...) | user-provided value | -| HostComparison.java:104:13:104:23 | toURL(...) | HostComparison.java:102:27:102:53 | getParameter(...) : String | HostComparison.java:104:13:104:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:102:27:102:53 | getParameter(...) | user-provided value | -| HostComparison.java:112:13:112:24 | toURL(...) | HostComparison.java:110:28:110:54 | getParameter(...) : String | HostComparison.java:112:13:112:24 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:110:28:110:54 | getParameter(...) | user-provided value | -| HostComparison.java:121:13:121:23 | toURL(...) | HostComparison.java:117:27:117:53 | getParameter(...) : String | HostComparison.java:121:13:121:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:117:27:117:53 | getParameter(...) | user-provided value | -| HostComparison.java:132:13:132:23 | toURL(...) | HostComparison.java:126:27:126:53 | getParameter(...) : String | HostComparison.java:132:13:132:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:126:27:126:53 | getParameter(...) | user-provided value | -| HostComparison.java:141:13:141:23 | toURL(...) | HostComparison.java:139:23:139:49 | getParameter(...) : String | HostComparison.java:141:13:141:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:139:23:139:49 | getParameter(...) | user-provided value | -| HostComparison.java:148:13:148:23 | toURL(...) | HostComparison.java:146:27:146:53 | getParameter(...) : String | HostComparison.java:148:13:148:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:146:27:146:53 | getParameter(...) | user-provided value | -| HostComparison.java:155:13:155:23 | toURL(...) | HostComparison.java:153:27:153:53 | getParameter(...) : String | HostComparison.java:155:13:155:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:153:27:153:53 | getParameter(...) | user-provided value | -| HostComparison.java:183:17:183:27 | toURL(...) | HostComparison.java:176:27:176:53 | getParameter(...) : String | HostComparison.java:183:17:183:27 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:176:27:176:53 | getParameter(...) | user-provided value | -| HostComparison.java:209:13:209:23 | toURL(...) | HostComparison.java:206:27:206:53 | getParameter(...) : String | HostComparison.java:209:13:209:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:206:27:206:53 | getParameter(...) | user-provided value | -| HostComparison.java:235:13:235:23 | toURL(...) | HostComparison.java:231:27:231:53 | getParameter(...) : String | HostComparison.java:235:13:235:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:231:27:231:53 | getParameter(...) | user-provided value | -| HostComparison.java:244:13:244:23 | toURL(...) | HostComparison.java:240:27:240:53 | getParameter(...) : String | HostComparison.java:244:13:244:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:240:27:240:53 | getParameter(...) | user-provided value | +| HostComparison.java:9:9:9:19 | toURL(...) | HostComparison.java:8:27:8:53 | getParameter(...) : String | HostComparison.java:9:9:9:19 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:8:27:8:53 | getParameter(...) | user-provided value | +| HostComparison.java:52:13:52:23 | toURL(...) | HostComparison.java:50:27:50:53 | getParameter(...) : String | HostComparison.java:52:13:52:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:50:27:50:53 | getParameter(...) | user-provided value | +| HostComparison.java:59:13:59:23 | toURL(...) | HostComparison.java:57:27:57:53 | getParameter(...) : String | HostComparison.java:59:13:59:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:57:27:57:53 | getParameter(...) | user-provided value | +| HostComparison.java:70:13:70:23 | toURL(...) | HostComparison.java:68:27:68:53 | getParameter(...) : String | HostComparison.java:70:13:70:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:68:27:68:53 | getParameter(...) | user-provided value | +| HostComparison.java:86:13:86:23 | toURL(...) | HostComparison.java:84:27:84:53 | getParameter(...) : String | HostComparison.java:86:13:86:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:84:27:84:53 | getParameter(...) | user-provided value | +| HostComparison.java:94:13:94:24 | toURL(...) | HostComparison.java:92:28:92:54 | getParameter(...) : String | HostComparison.java:94:13:94:24 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:92:28:92:54 | getParameter(...) | user-provided value | +| HostComparison.java:105:13:105:23 | toURL(...) | HostComparison.java:103:27:103:53 | getParameter(...) : String | HostComparison.java:105:13:105:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:103:27:103:53 | getParameter(...) | user-provided value | +| HostComparison.java:113:13:113:24 | toURL(...) | HostComparison.java:111:28:111:54 | getParameter(...) : String | HostComparison.java:113:13:113:24 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:111:28:111:54 | getParameter(...) | user-provided value | +| HostComparison.java:122:13:122:23 | toURL(...) | HostComparison.java:118:27:118:53 | getParameter(...) : String | HostComparison.java:122:13:122:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:118:27:118:53 | getParameter(...) | user-provided value | +| HostComparison.java:133:13:133:23 | toURL(...) | HostComparison.java:127:27:127:53 | getParameter(...) : String | HostComparison.java:133:13:133:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:127:27:127:53 | getParameter(...) | user-provided value | +| HostComparison.java:142:13:142:23 | toURL(...) | HostComparison.java:140:23:140:49 | getParameter(...) : String | HostComparison.java:142:13:142:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:140:23:140:49 | getParameter(...) | user-provided value | +| HostComparison.java:149:13:149:23 | toURL(...) | HostComparison.java:147:27:147:53 | getParameter(...) : String | HostComparison.java:149:13:149:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:147:27:147:53 | getParameter(...) | user-provided value | +| HostComparison.java:156:13:156:23 | toURL(...) | HostComparison.java:154:27:154:53 | getParameter(...) : String | HostComparison.java:156:13:156:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:154:27:154:53 | getParameter(...) | user-provided value | +| HostComparison.java:184:17:184:27 | toURL(...) | HostComparison.java:177:27:177:53 | getParameter(...) : String | HostComparison.java:184:17:184:27 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:177:27:177:53 | getParameter(...) | user-provided value | +| HostComparison.java:226:13:226:23 | toURL(...) | HostComparison.java:223:27:223:53 | getParameter(...) : String | HostComparison.java:226:13:226:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:223:27:223:53 | getParameter(...) | user-provided value | +| HostComparison.java:242:13:242:23 | toURL(...) | HostComparison.java:239:27:239:53 | getParameter(...) : String | HostComparison.java:242:13:242:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:239:27:239:53 | getParameter(...) | user-provided value | +| HostComparison.java:250:13:250:23 | toURL(...) | HostComparison.java:247:27:247:53 | getParameter(...) : String | HostComparison.java:250:13:250:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:247:27:247:53 | getParameter(...) | user-provided value | +| HostComparison.java:276:13:276:23 | toURL(...) | HostComparison.java:272:27:272:53 | getParameter(...) : String | HostComparison.java:276:13:276:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:272:27:272:53 | getParameter(...) | user-provided value | +| HostComparison.java:285:13:285:23 | toURL(...) | HostComparison.java:281:27:281:53 | getParameter(...) : String | HostComparison.java:285:13:285:23 | toURL(...) | Potential server-side request forgery due to a $@. | HostComparison.java:281:27:281:53 | getParameter(...) | user-provided value | | JakartaWsSSRF.java:15:23:15:25 | url | JakartaWsSSRF.java:14:22:14:48 | getParameter(...) : String | JakartaWsSSRF.java:15:23:15:25 | url | Potential server-side request forgery due to a $@. | JakartaWsSSRF.java:14:22:14:48 | getParameter(...) | user-provided value | | JavaNetHttpSSRF.java:30:32:30:35 | url1 | JavaNetHttpSSRF.java:25:27:25:53 | getParameter(...) : String | JavaNetHttpSSRF.java:30:32:30:35 | url1 | Potential server-side request forgery due to a $@. | JavaNetHttpSSRF.java:25:27:25:53 | getParameter(...) | user-provided value | | JavaNetHttpSSRF.java:33:32:33:35 | url1 | JavaNetHttpSSRF.java:25:27:25:53 | getParameter(...) : String | JavaNetHttpSSRF.java:33:32:33:35 | url1 | Potential server-side request forgery due to a $@. | JavaNetHttpSSRF.java:25:27:25:53 | getParameter(...) | user-provided value | @@ -733,74 +735,82 @@ edges | ApacheHttpSSRFVersion5.java:376:29:376:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:385:50:385:53 | host | provenance | Sink:MaD:206 | | ApacheHttpSSRFVersion5.java:376:29:376:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:387:44:387:47 | host | provenance | Sink:MaD:208 | | ApacheHttpSSRFVersion5.java:376:42:376:49 | hostSink : String | ApacheHttpSSRFVersion5.java:376:29:376:50 | new HttpHost(...) : HttpHost | provenance | MaD:315 | -| HostComparison.java:7:19:7:54 | new URI(...) : URI | HostComparison.java:8:9:8:11 | uri : URI | provenance | | -| HostComparison.java:7:27:7:53 | getParameter(...) : String | HostComparison.java:7:19:7:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | -| HostComparison.java:7:27:7:53 | getParameter(...) : String | HostComparison.java:7:19:7:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | -| HostComparison.java:8:9:8:11 | uri : URI | HostComparison.java:8:9:8:19 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | -| HostComparison.java:49:19:49:54 | new URI(...) : URI | HostComparison.java:51:13:51:15 | uri : URI | provenance | | -| HostComparison.java:49:27:49:53 | getParameter(...) : String | HostComparison.java:49:19:49:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | -| HostComparison.java:49:27:49:53 | getParameter(...) : String | HostComparison.java:49:19:49:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | -| HostComparison.java:51:13:51:15 | uri : URI | HostComparison.java:51:13:51:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | -| HostComparison.java:56:19:56:54 | new URI(...) : URI | HostComparison.java:58:13:58:15 | uri : URI | provenance | | -| HostComparison.java:56:27:56:53 | getParameter(...) : String | HostComparison.java:56:19:56:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | -| HostComparison.java:56:27:56:53 | getParameter(...) : String | HostComparison.java:56:19:56:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | -| HostComparison.java:58:13:58:15 | uri : URI | HostComparison.java:58:13:58:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | -| HostComparison.java:67:19:67:54 | new URI(...) : URI | HostComparison.java:69:13:69:15 | uri : URI | provenance | | -| HostComparison.java:67:27:67:53 | getParameter(...) : String | HostComparison.java:67:19:67:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | -| HostComparison.java:67:27:67:53 | getParameter(...) : String | HostComparison.java:67:19:67:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | -| HostComparison.java:69:13:69:15 | uri : URI | HostComparison.java:69:13:69:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | -| HostComparison.java:83:19:83:54 | new URI(...) : URI | HostComparison.java:85:13:85:15 | uri : URI | provenance | | -| HostComparison.java:83:27:83:53 | getParameter(...) : String | HostComparison.java:83:19:83:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | -| HostComparison.java:83:27:83:53 | getParameter(...) : String | HostComparison.java:83:19:83:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | -| HostComparison.java:85:13:85:15 | uri : URI | HostComparison.java:85:13:85:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | -| HostComparison.java:91:20:91:55 | new URI(...) : URI | HostComparison.java:93:13:93:16 | used : URI | provenance | | -| HostComparison.java:91:28:91:54 | getParameter(...) : String | HostComparison.java:91:20:91:55 | new URI(...) : URI | provenance | Src:MaD:292 Config | -| HostComparison.java:91:28:91:54 | getParameter(...) : String | HostComparison.java:91:20:91:55 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | -| HostComparison.java:93:13:93:16 | used : URI | HostComparison.java:93:13:93:24 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | -| HostComparison.java:102:19:102:54 | new URI(...) : URI | HostComparison.java:104:13:104:15 | uri : URI | provenance | | -| HostComparison.java:102:27:102:53 | getParameter(...) : String | HostComparison.java:102:19:102:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | -| HostComparison.java:102:27:102:53 | getParameter(...) : String | HostComparison.java:102:19:102:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | -| HostComparison.java:104:13:104:15 | uri : URI | HostComparison.java:104:13:104:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | -| HostComparison.java:110:20:110:55 | new URI(...) : URI | HostComparison.java:112:13:112:16 | used : URI | provenance | | -| HostComparison.java:110:28:110:54 | getParameter(...) : String | HostComparison.java:110:20:110:55 | new URI(...) : URI | provenance | Src:MaD:292 Config | -| HostComparison.java:110:28:110:54 | getParameter(...) : String | HostComparison.java:110:20:110:55 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | -| HostComparison.java:112:13:112:16 | used : URI | HostComparison.java:112:13:112:24 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | -| HostComparison.java:117:19:117:54 | new URI(...) : URI | HostComparison.java:121:13:121:15 | uri : URI | provenance | | -| HostComparison.java:117:27:117:53 | getParameter(...) : String | HostComparison.java:117:19:117:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | -| HostComparison.java:117:27:117:53 | getParameter(...) : String | HostComparison.java:117:19:117:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | -| HostComparison.java:121:13:121:15 | uri : URI | HostComparison.java:121:13:121:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | -| HostComparison.java:126:19:126:54 | new URI(...) : URI | HostComparison.java:132:13:132:15 | uri : URI | provenance | | -| HostComparison.java:126:27:126:53 | getParameter(...) : String | HostComparison.java:126:19:126:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | -| HostComparison.java:126:27:126:53 | getParameter(...) : String | HostComparison.java:126:19:126:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | -| HostComparison.java:132:13:132:15 | uri : URI | HostComparison.java:132:13:132:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | -| HostComparison.java:139:15:139:50 | new URI(...) : URI | HostComparison.java:141:13:141:15 | uri : URI | provenance | | -| HostComparison.java:139:23:139:49 | getParameter(...) : String | HostComparison.java:139:15:139:50 | new URI(...) : URI | provenance | Src:MaD:292 Config | -| HostComparison.java:139:23:139:49 | getParameter(...) : String | HostComparison.java:139:15:139:50 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | -| HostComparison.java:141:13:141:15 | uri : URI | HostComparison.java:141:13:141:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | -| HostComparison.java:146:19:146:54 | new URI(...) : URI | HostComparison.java:148:13:148:15 | uri : URI | provenance | | -| HostComparison.java:146:27:146:53 | getParameter(...) : String | HostComparison.java:146:19:146:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | -| HostComparison.java:146:27:146:53 | getParameter(...) : String | HostComparison.java:146:19:146:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | -| HostComparison.java:148:13:148:15 | uri : URI | HostComparison.java:148:13:148:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | -| HostComparison.java:153:19:153:54 | new URI(...) : URI | HostComparison.java:155:13:155:15 | uri : URI | provenance | | -| HostComparison.java:153:27:153:53 | getParameter(...) : String | HostComparison.java:153:19:153:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | -| HostComparison.java:153:27:153:53 | getParameter(...) : String | HostComparison.java:153:19:153:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | -| HostComparison.java:155:13:155:15 | uri : URI | HostComparison.java:155:13:155:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | -| HostComparison.java:176:19:176:54 | new URI(...) : URI | HostComparison.java:183:17:183:19 | uri : URI | provenance | | -| HostComparison.java:176:27:176:53 | getParameter(...) : String | HostComparison.java:176:19:176:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | -| HostComparison.java:176:27:176:53 | getParameter(...) : String | HostComparison.java:176:19:176:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | -| HostComparison.java:183:17:183:19 | uri : URI | HostComparison.java:183:17:183:27 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | -| HostComparison.java:206:19:206:54 | new URI(...) : URI | HostComparison.java:209:13:209:15 | uri : URI | provenance | | -| HostComparison.java:206:27:206:53 | getParameter(...) : String | HostComparison.java:206:19:206:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | -| HostComparison.java:206:27:206:53 | getParameter(...) : String | HostComparison.java:206:19:206:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | -| HostComparison.java:209:13:209:15 | uri : URI | HostComparison.java:209:13:209:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | -| HostComparison.java:231:19:231:54 | new URI(...) : URI | HostComparison.java:235:13:235:15 | uri : URI | provenance | | -| HostComparison.java:231:27:231:53 | getParameter(...) : String | HostComparison.java:231:19:231:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | -| HostComparison.java:231:27:231:53 | getParameter(...) : String | HostComparison.java:231:19:231:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | -| HostComparison.java:235:13:235:15 | uri : URI | HostComparison.java:235:13:235:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | -| HostComparison.java:240:19:240:54 | new URI(...) : URI | HostComparison.java:244:13:244:15 | uri : URI | provenance | | -| HostComparison.java:240:27:240:53 | getParameter(...) : String | HostComparison.java:240:19:240:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | -| HostComparison.java:240:27:240:53 | getParameter(...) : String | HostComparison.java:240:19:240:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | -| HostComparison.java:244:13:244:15 | uri : URI | HostComparison.java:244:13:244:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | +| HostComparison.java:8:19:8:54 | new URI(...) : URI | HostComparison.java:9:9:9:11 | uri : URI | provenance | | +| HostComparison.java:8:27:8:53 | getParameter(...) : String | HostComparison.java:8:19:8:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | +| HostComparison.java:8:27:8:53 | getParameter(...) : String | HostComparison.java:8:19:8:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | +| HostComparison.java:9:9:9:11 | uri : URI | HostComparison.java:9:9:9:19 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | +| HostComparison.java:50:19:50:54 | new URI(...) : URI | HostComparison.java:52:13:52:15 | uri : URI | provenance | | +| HostComparison.java:50:27:50:53 | getParameter(...) : String | HostComparison.java:50:19:50:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | +| HostComparison.java:50:27:50:53 | getParameter(...) : String | HostComparison.java:50:19:50:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | +| HostComparison.java:52:13:52:15 | uri : URI | HostComparison.java:52:13:52:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | +| HostComparison.java:57:19:57:54 | new URI(...) : URI | HostComparison.java:59:13:59:15 | uri : URI | provenance | | +| HostComparison.java:57:27:57:53 | getParameter(...) : String | HostComparison.java:57:19:57:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | +| HostComparison.java:57:27:57:53 | getParameter(...) : String | HostComparison.java:57:19:57:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | +| HostComparison.java:59:13:59:15 | uri : URI | HostComparison.java:59:13:59:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | +| HostComparison.java:68:19:68:54 | new URI(...) : URI | HostComparison.java:70:13:70:15 | uri : URI | provenance | | +| HostComparison.java:68:27:68:53 | getParameter(...) : String | HostComparison.java:68:19:68:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | +| HostComparison.java:68:27:68:53 | getParameter(...) : String | HostComparison.java:68:19:68:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | +| HostComparison.java:70:13:70:15 | uri : URI | HostComparison.java:70:13:70:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | +| HostComparison.java:84:19:84:54 | new URI(...) : URI | HostComparison.java:86:13:86:15 | uri : URI | provenance | | +| HostComparison.java:84:27:84:53 | getParameter(...) : String | HostComparison.java:84:19:84:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | +| HostComparison.java:84:27:84:53 | getParameter(...) : String | HostComparison.java:84:19:84:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | +| HostComparison.java:86:13:86:15 | uri : URI | HostComparison.java:86:13:86:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | +| HostComparison.java:92:20:92:55 | new URI(...) : URI | HostComparison.java:94:13:94:16 | used : URI | provenance | | +| HostComparison.java:92:28:92:54 | getParameter(...) : String | HostComparison.java:92:20:92:55 | new URI(...) : URI | provenance | Src:MaD:292 Config | +| HostComparison.java:92:28:92:54 | getParameter(...) : String | HostComparison.java:92:20:92:55 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | +| HostComparison.java:94:13:94:16 | used : URI | HostComparison.java:94:13:94:24 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | +| HostComparison.java:103:19:103:54 | new URI(...) : URI | HostComparison.java:105:13:105:15 | uri : URI | provenance | | +| HostComparison.java:103:27:103:53 | getParameter(...) : String | HostComparison.java:103:19:103:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | +| HostComparison.java:103:27:103:53 | getParameter(...) : String | HostComparison.java:103:19:103:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | +| HostComparison.java:105:13:105:15 | uri : URI | HostComparison.java:105:13:105:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | +| HostComparison.java:111:20:111:55 | new URI(...) : URI | HostComparison.java:113:13:113:16 | used : URI | provenance | | +| HostComparison.java:111:28:111:54 | getParameter(...) : String | HostComparison.java:111:20:111:55 | new URI(...) : URI | provenance | Src:MaD:292 Config | +| HostComparison.java:111:28:111:54 | getParameter(...) : String | HostComparison.java:111:20:111:55 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | +| HostComparison.java:113:13:113:16 | used : URI | HostComparison.java:113:13:113:24 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | +| HostComparison.java:118:19:118:54 | new URI(...) : URI | HostComparison.java:122:13:122:15 | uri : URI | provenance | | +| HostComparison.java:118:27:118:53 | getParameter(...) : String | HostComparison.java:118:19:118:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | +| HostComparison.java:118:27:118:53 | getParameter(...) : String | HostComparison.java:118:19:118:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | +| HostComparison.java:122:13:122:15 | uri : URI | HostComparison.java:122:13:122:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | +| HostComparison.java:127:19:127:54 | new URI(...) : URI | HostComparison.java:133:13:133:15 | uri : URI | provenance | | +| HostComparison.java:127:27:127:53 | getParameter(...) : String | HostComparison.java:127:19:127:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | +| HostComparison.java:127:27:127:53 | getParameter(...) : String | HostComparison.java:127:19:127:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | +| HostComparison.java:133:13:133:15 | uri : URI | HostComparison.java:133:13:133:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | +| HostComparison.java:140:15:140:50 | new URI(...) : URI | HostComparison.java:142:13:142:15 | uri : URI | provenance | | +| HostComparison.java:140:23:140:49 | getParameter(...) : String | HostComparison.java:140:15:140:50 | new URI(...) : URI | provenance | Src:MaD:292 Config | +| HostComparison.java:140:23:140:49 | getParameter(...) : String | HostComparison.java:140:15:140:50 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | +| HostComparison.java:142:13:142:15 | uri : URI | HostComparison.java:142:13:142:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | +| HostComparison.java:147:19:147:54 | new URI(...) : URI | HostComparison.java:149:13:149:15 | uri : URI | provenance | | +| HostComparison.java:147:27:147:53 | getParameter(...) : String | HostComparison.java:147:19:147:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | +| HostComparison.java:147:27:147:53 | getParameter(...) : String | HostComparison.java:147:19:147:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | +| HostComparison.java:149:13:149:15 | uri : URI | HostComparison.java:149:13:149:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | +| HostComparison.java:154:19:154:54 | new URI(...) : URI | HostComparison.java:156:13:156:15 | uri : URI | provenance | | +| HostComparison.java:154:27:154:53 | getParameter(...) : String | HostComparison.java:154:19:154:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | +| HostComparison.java:154:27:154:53 | getParameter(...) : String | HostComparison.java:154:19:154:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | +| HostComparison.java:156:13:156:15 | uri : URI | HostComparison.java:156:13:156:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | +| HostComparison.java:177:19:177:54 | new URI(...) : URI | HostComparison.java:184:17:184:19 | uri : URI | provenance | | +| HostComparison.java:177:27:177:53 | getParameter(...) : String | HostComparison.java:177:19:177:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | +| HostComparison.java:177:27:177:53 | getParameter(...) : String | HostComparison.java:177:19:177:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | +| HostComparison.java:184:17:184:19 | uri : URI | HostComparison.java:184:17:184:27 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | +| HostComparison.java:223:19:223:54 | new URI(...) : URI | HostComparison.java:226:13:226:15 | uri : URI | provenance | | +| HostComparison.java:223:27:223:53 | getParameter(...) : String | HostComparison.java:223:19:223:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | +| HostComparison.java:223:27:223:53 | getParameter(...) : String | HostComparison.java:223:19:223:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | +| HostComparison.java:226:13:226:15 | uri : URI | HostComparison.java:226:13:226:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | +| HostComparison.java:239:19:239:54 | new URI(...) : URI | HostComparison.java:242:13:242:15 | uri : URI | provenance | | +| HostComparison.java:239:27:239:53 | getParameter(...) : String | HostComparison.java:239:19:239:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | +| HostComparison.java:239:27:239:53 | getParameter(...) : String | HostComparison.java:239:19:239:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | +| HostComparison.java:242:13:242:15 | uri : URI | HostComparison.java:242:13:242:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | +| HostComparison.java:247:19:247:54 | new URI(...) : URI | HostComparison.java:250:13:250:15 | uri : URI | provenance | | +| HostComparison.java:247:27:247:53 | getParameter(...) : String | HostComparison.java:247:19:247:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | +| HostComparison.java:247:27:247:53 | getParameter(...) : String | HostComparison.java:247:19:247:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | +| HostComparison.java:250:13:250:15 | uri : URI | HostComparison.java:250:13:250:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | +| HostComparison.java:272:19:272:54 | new URI(...) : URI | HostComparison.java:276:13:276:15 | uri : URI | provenance | | +| HostComparison.java:272:27:272:53 | getParameter(...) : String | HostComparison.java:272:19:272:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | +| HostComparison.java:272:27:272:53 | getParameter(...) : String | HostComparison.java:272:19:272:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | +| HostComparison.java:276:13:276:15 | uri : URI | HostComparison.java:276:13:276:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | +| HostComparison.java:281:19:281:54 | new URI(...) : URI | HostComparison.java:285:13:285:15 | uri : URI | provenance | | +| HostComparison.java:281:27:281:53 | getParameter(...) : String | HostComparison.java:281:19:281:54 | new URI(...) : URI | provenance | Src:MaD:292 Config | +| HostComparison.java:281:27:281:53 | getParameter(...) : String | HostComparison.java:281:19:281:54 | new URI(...) : URI | provenance | Src:MaD:292 MaD:304 | +| HostComparison.java:285:13:285:15 | uri : URI | HostComparison.java:285:13:285:23 | toURL(...) | provenance | MaD:308 Sink:MaD:15 | | JakartaWsSSRF.java:14:22:14:48 | getParameter(...) : String | JakartaWsSSRF.java:15:23:15:25 | url | provenance | Src:MaD:292 Sink:MaD:9 | | JavaNetHttpSSRF.java:25:27:25:53 | getParameter(...) : String | JavaNetHttpSSRF.java:26:31:26:34 | sink : String | provenance | Src:MaD:292 | | JavaNetHttpSSRF.java:26:23:26:35 | new URI(...) : URI | JavaNetHttpSSRF.java:39:59:39:61 | uri | provenance | Sink:MaD:12 | @@ -1859,74 +1869,82 @@ nodes | ApacheHttpSSRFVersion5.java:388:44:388:46 | uri | semmle.label | uri | | ApacheHttpSSRFVersion5.java:390:24:390:26 | uri | semmle.label | uri | | ApacheHttpSSRFVersion5.java:394:24:394:26 | uri | semmle.label | uri | -| HostComparison.java:7:19:7:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparison.java:7:27:7:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparison.java:8:9:8:11 | uri : URI | semmle.label | uri : URI | -| HostComparison.java:8:9:8:19 | toURL(...) | semmle.label | toURL(...) | -| HostComparison.java:49:19:49:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparison.java:49:27:49:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparison.java:51:13:51:15 | uri : URI | semmle.label | uri : URI | -| HostComparison.java:51:13:51:23 | toURL(...) | semmle.label | toURL(...) | -| HostComparison.java:56:19:56:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparison.java:56:27:56:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparison.java:58:13:58:15 | uri : URI | semmle.label | uri : URI | -| HostComparison.java:58:13:58:23 | toURL(...) | semmle.label | toURL(...) | -| HostComparison.java:67:19:67:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparison.java:67:27:67:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparison.java:69:13:69:15 | uri : URI | semmle.label | uri : URI | -| HostComparison.java:69:13:69:23 | toURL(...) | semmle.label | toURL(...) | -| HostComparison.java:83:19:83:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparison.java:83:27:83:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparison.java:85:13:85:15 | uri : URI | semmle.label | uri : URI | -| HostComparison.java:85:13:85:23 | toURL(...) | semmle.label | toURL(...) | -| HostComparison.java:91:20:91:55 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparison.java:91:28:91:54 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparison.java:93:13:93:16 | used : URI | semmle.label | used : URI | -| HostComparison.java:93:13:93:24 | toURL(...) | semmle.label | toURL(...) | -| HostComparison.java:102:19:102:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparison.java:102:27:102:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparison.java:104:13:104:15 | uri : URI | semmle.label | uri : URI | -| HostComparison.java:104:13:104:23 | toURL(...) | semmle.label | toURL(...) | -| HostComparison.java:110:20:110:55 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparison.java:110:28:110:54 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparison.java:112:13:112:16 | used : URI | semmle.label | used : URI | -| HostComparison.java:112:13:112:24 | toURL(...) | semmle.label | toURL(...) | -| HostComparison.java:117:19:117:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparison.java:117:27:117:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparison.java:121:13:121:15 | uri : URI | semmle.label | uri : URI | -| HostComparison.java:121:13:121:23 | toURL(...) | semmle.label | toURL(...) | -| HostComparison.java:126:19:126:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparison.java:126:27:126:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparison.java:132:13:132:15 | uri : URI | semmle.label | uri : URI | -| HostComparison.java:132:13:132:23 | toURL(...) | semmle.label | toURL(...) | -| HostComparison.java:139:15:139:50 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparison.java:139:23:139:49 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparison.java:141:13:141:15 | uri : URI | semmle.label | uri : URI | -| HostComparison.java:141:13:141:23 | toURL(...) | semmle.label | toURL(...) | -| HostComparison.java:146:19:146:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparison.java:146:27:146:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparison.java:148:13:148:15 | uri : URI | semmle.label | uri : URI | -| HostComparison.java:148:13:148:23 | toURL(...) | semmle.label | toURL(...) | -| HostComparison.java:153:19:153:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparison.java:153:27:153:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparison.java:155:13:155:15 | uri : URI | semmle.label | uri : URI | -| HostComparison.java:155:13:155:23 | toURL(...) | semmle.label | toURL(...) | -| HostComparison.java:176:19:176:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparison.java:176:27:176:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparison.java:183:17:183:19 | uri : URI | semmle.label | uri : URI | -| HostComparison.java:183:17:183:27 | toURL(...) | semmle.label | toURL(...) | -| HostComparison.java:206:19:206:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparison.java:206:27:206:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparison.java:209:13:209:15 | uri : URI | semmle.label | uri : URI | -| HostComparison.java:209:13:209:23 | toURL(...) | semmle.label | toURL(...) | -| HostComparison.java:231:19:231:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparison.java:231:27:231:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparison.java:235:13:235:15 | uri : URI | semmle.label | uri : URI | -| HostComparison.java:235:13:235:23 | toURL(...) | semmle.label | toURL(...) | -| HostComparison.java:240:19:240:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | -| HostComparison.java:240:27:240:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | -| HostComparison.java:244:13:244:15 | uri : URI | semmle.label | uri : URI | -| HostComparison.java:244:13:244:23 | toURL(...) | semmle.label | toURL(...) | +| HostComparison.java:8:19:8:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparison.java:8:27:8:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparison.java:9:9:9:11 | uri : URI | semmle.label | uri : URI | +| HostComparison.java:9:9:9:19 | toURL(...) | semmle.label | toURL(...) | +| HostComparison.java:50:19:50:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparison.java:50:27:50:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparison.java:52:13:52:15 | uri : URI | semmle.label | uri : URI | +| HostComparison.java:52:13:52:23 | toURL(...) | semmle.label | toURL(...) | +| HostComparison.java:57:19:57:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparison.java:57:27:57:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparison.java:59:13:59:15 | uri : URI | semmle.label | uri : URI | +| HostComparison.java:59:13:59:23 | toURL(...) | semmle.label | toURL(...) | +| HostComparison.java:68:19:68:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparison.java:68:27:68:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparison.java:70:13:70:15 | uri : URI | semmle.label | uri : URI | +| HostComparison.java:70:13:70:23 | toURL(...) | semmle.label | toURL(...) | +| HostComparison.java:84:19:84:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparison.java:84:27:84:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparison.java:86:13:86:15 | uri : URI | semmle.label | uri : URI | +| HostComparison.java:86:13:86:23 | toURL(...) | semmle.label | toURL(...) | +| HostComparison.java:92:20:92:55 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparison.java:92:28:92:54 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparison.java:94:13:94:16 | used : URI | semmle.label | used : URI | +| HostComparison.java:94:13:94:24 | toURL(...) | semmle.label | toURL(...) | +| HostComparison.java:103:19:103:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparison.java:103:27:103:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparison.java:105:13:105:15 | uri : URI | semmle.label | uri : URI | +| HostComparison.java:105:13:105:23 | toURL(...) | semmle.label | toURL(...) | +| HostComparison.java:111:20:111:55 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparison.java:111:28:111:54 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparison.java:113:13:113:16 | used : URI | semmle.label | used : URI | +| HostComparison.java:113:13:113:24 | toURL(...) | semmle.label | toURL(...) | +| HostComparison.java:118:19:118:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparison.java:118:27:118:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparison.java:122:13:122:15 | uri : URI | semmle.label | uri : URI | +| HostComparison.java:122:13:122:23 | toURL(...) | semmle.label | toURL(...) | +| HostComparison.java:127:19:127:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparison.java:127:27:127:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparison.java:133:13:133:15 | uri : URI | semmle.label | uri : URI | +| HostComparison.java:133:13:133:23 | toURL(...) | semmle.label | toURL(...) | +| HostComparison.java:140:15:140:50 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparison.java:140:23:140:49 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparison.java:142:13:142:15 | uri : URI | semmle.label | uri : URI | +| HostComparison.java:142:13:142:23 | toURL(...) | semmle.label | toURL(...) | +| HostComparison.java:147:19:147:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparison.java:147:27:147:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparison.java:149:13:149:15 | uri : URI | semmle.label | uri : URI | +| HostComparison.java:149:13:149:23 | toURL(...) | semmle.label | toURL(...) | +| HostComparison.java:154:19:154:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparison.java:154:27:154:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparison.java:156:13:156:15 | uri : URI | semmle.label | uri : URI | +| HostComparison.java:156:13:156:23 | toURL(...) | semmle.label | toURL(...) | +| HostComparison.java:177:19:177:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparison.java:177:27:177:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparison.java:184:17:184:19 | uri : URI | semmle.label | uri : URI | +| HostComparison.java:184:17:184:27 | toURL(...) | semmle.label | toURL(...) | +| HostComparison.java:223:19:223:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparison.java:223:27:223:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparison.java:226:13:226:15 | uri : URI | semmle.label | uri : URI | +| HostComparison.java:226:13:226:23 | toURL(...) | semmle.label | toURL(...) | +| HostComparison.java:239:19:239:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparison.java:239:27:239:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparison.java:242:13:242:15 | uri : URI | semmle.label | uri : URI | +| HostComparison.java:242:13:242:23 | toURL(...) | semmle.label | toURL(...) | +| HostComparison.java:247:19:247:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparison.java:247:27:247:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparison.java:250:13:250:15 | uri : URI | semmle.label | uri : URI | +| HostComparison.java:250:13:250:23 | toURL(...) | semmle.label | toURL(...) | +| HostComparison.java:272:19:272:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparison.java:272:27:272:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparison.java:276:13:276:15 | uri : URI | semmle.label | uri : URI | +| HostComparison.java:276:13:276:23 | toURL(...) | semmle.label | toURL(...) | +| HostComparison.java:281:19:281:54 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| HostComparison.java:281:27:281:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| HostComparison.java:285:13:285:15 | uri : URI | semmle.label | uri : URI | +| HostComparison.java:285:13:285:23 | toURL(...) | semmle.label | toURL(...) | | JakartaWsSSRF.java:14:22:14:48 | getParameter(...) : String | semmle.label | getParameter(...) : String | | JakartaWsSSRF.java:15:23:15:25 | url | semmle.label | url | | JavaNetHttpSSRF.java:25:27:25:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | diff --git a/javascript/ql/lib/change-notes/2026-10-03-mcp-models.md b/javascript/ql/lib/change-notes/2026-10-03-mcp-models.md new file mode 100644 index 000000000000..ca66290407be --- /dev/null +++ b/javascript/ql/lib/change-notes/2026-10-03-mcp-models.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added modeling of the `@modelcontextprotocol/sdk` and `@modelcontextprotocol/server` (the official Model Context Protocol SDK) and `fastmcp` npm packages. The arguments of MCP tool, resource and prompt callbacks and the requests that handlers of the low-level `Server` receive are now sources of the opt-in `ai` threat model, as their values are produced by a language model. The request headers and the bearer token that the SDK passes to a callback are sources of the `remote` threat model. diff --git a/javascript/ql/lib/change-notes/2026-10-03-zod.md b/javascript/ql/lib/change-notes/2026-10-03-zod.md new file mode 100644 index 000000000000..5bd9d32240a2 --- /dev/null +++ b/javascript/ql/lib/change-notes/2026-10-03-zod.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added flow summaries for schema parsing with the `zod` npm package: data now flows from the argument of `parse`, `safeParse`, `parseAsync` and `safeParseAsync` to the parsed result. diff --git a/javascript/ql/lib/change-notes/2026-10-22-multiline-regexp-sanitizer.md b/javascript/ql/lib/change-notes/2026-10-22-multiline-regexp-sanitizer.md new file mode 100644 index 000000000000..d77bd99c1b0e --- /dev/null +++ b/javascript/ql/lib/change-notes/2026-10-22-multiline-regexp-sanitizer.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Regular expression checks using multiline (`m`) or unknown flags are no longer treated as generic taint sanitizers just because the pattern is anchored with `^` and `$`. This can reveal previously missed alerts, including command injection and reflected cross-site scripting. diff --git a/javascript/ql/lib/change-notes/2026-10-30-trusted-schema-not-sensitive.md b/javascript/ql/lib/change-notes/2026-10-30-trusted-schema-not-sensitive.md new file mode 100644 index 000000000000..f97ae0b25b6e --- /dev/null +++ b/javascript/ql/lib/change-notes/2026-10-30-trusted-schema-not-sensitive.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The sensitive data heuristics treat names built on `trusted_schema`, such as SQLite's `set_trusted_schema` setting, as non-sensitive. This removes false positive results from queries that use the sensitive data library (for example `js/clear-text-logging`). diff --git a/javascript/ql/lib/ext/fastmcp.model.yml b/javascript/ql/lib/ext/fastmcp.model.yml new file mode 100644 index 000000000000..bc784820c864 --- /dev/null +++ b/javascript/ql/lib/ext/fastmcp.model.yml @@ -0,0 +1,15 @@ +# Sources for MCP servers built with the npm package "fastmcp": the arguments of tools, resource +# templates and prompts. +extensions: + - addsTo: + pack: codeql/javascript-all + extensible: typeModel + data: + - ["fastmcp.FastMCP", "fastmcp", "Member[FastMCP].Instance"] + + - addsTo: + pack: codeql/javascript-all + extensible: sourceModel + data: + - ["fastmcp.FastMCP", "Member[addTool].Argument[0].Member[execute].Parameter[0]", "ai"] + - ["fastmcp.FastMCP", "Member[addResourceTemplate,addPrompt].Argument[0].Member[load].Parameter[0]", "ai"] diff --git a/javascript/ql/lib/ext/mcp.model.yml b/javascript/ql/lib/ext/mcp.model.yml new file mode 100644 index 000000000000..30b3bb599947 --- /dev/null +++ b/javascript/ql/lib/ext/mcp.model.yml @@ -0,0 +1,36 @@ +# Sources for MCP servers built with the TypeScript SDK: "@modelcontextprotocol/sdk" (1.x) and +# "@modelcontextprotocol/server" (2.x). The arguments of tool, prompt and resource callbacks are +# input the server receives through MCP, and so are the transport headers and the bearer token the +# SDK hands to a callback. +# +# A package name that contains a dot must be quoted with single quotes; otherwise CodeQL reads the +# text after the first dot as a type name. +extensions: + - addsTo: + pack: codeql/javascript-all + extensible: typeModel + data: + - ["@modelcontextprotocol/sdk.McpServer", "'@modelcontextprotocol/sdk/server/mcp.js'", "Member[McpServer].Instance"] + - ["@modelcontextprotocol/sdk.McpServer", "@modelcontextprotocol/sdk/server/mcp", "Member[McpServer].Instance"] + - ["@modelcontextprotocol/sdk.McpServer", "@modelcontextprotocol/server", "Member[McpServer].Instance"] + - ["@modelcontextprotocol/sdk.McpServer", "'@modelcontextprotocol/sdk/server/mcp.js'.McpServer", ""] + - ["@modelcontextprotocol/sdk.Server", "'@modelcontextprotocol/sdk/server/index.js'", "Member[Server].Instance"] + - ["@modelcontextprotocol/sdk.Server", "@modelcontextprotocol/sdk/server/index", "Member[Server].Instance"] + - ["@modelcontextprotocol/sdk.Server", "@modelcontextprotocol/server", "Member[Server].Instance"] + - ["@modelcontextprotocol/sdk.Server", "@modelcontextprotocol/sdk.McpServer", "Member[server]"] + + - addsTo: + pack: codeql/javascript-all + extensible: sourceModel + data: + # High-level server: the callback is the last argument; its first parameter holds the arguments + - ["@modelcontextprotocol/sdk.McpServer", "Member[tool,registerTool,prompt,registerPrompt].Argument[1..].Parameter[0]", "ai"] + - ["@modelcontextprotocol/sdk.McpServer", "Member[resource,registerResource].Argument[1..].Parameter[0,1]", "ai"] + # Transport headers and the bearer token: `extra` in 1.x, `ctx` in 2.x + - ["@modelcontextprotocol/sdk.McpServer", "Member[tool,registerTool,prompt,registerPrompt].Argument[1..].Parameter[1,2].Member[requestInfo].Member[headers]", "remote"] + - ["@modelcontextprotocol/sdk.McpServer", "Member[tool,registerTool,prompt,registerPrompt].Argument[1..].Parameter[1,2].Member[authInfo].Member[token]", "remote"] + - ["@modelcontextprotocol/sdk.McpServer", "Member[tool,registerTool,prompt,registerPrompt].Argument[1..].Parameter[1,2].Member[http].Member[req].Member[headers].Member[get].ReturnValue", "remote"] + - ["@modelcontextprotocol/sdk.McpServer", "Member[tool,registerTool,prompt,registerPrompt].Argument[1..].Parameter[1,2].Member[http].Member[authInfo].Member[token]", "remote"] + # Low-level server: request handlers receive the request; custom methods (2.x) its params + - ["@modelcontextprotocol/sdk.Server", "Member[setRequestHandler].Argument[1].Parameter[0].Member[params]", "ai"] + - ["@modelcontextprotocol/sdk.Server", "Member[setRequestHandler].Argument[2].Parameter[0]", "ai"] diff --git a/javascript/ql/lib/ext/zod.model.yml b/javascript/ql/lib/ext/zod.model.yml new file mode 100644 index 000000000000..234a0aec9d01 --- /dev/null +++ b/javascript/ql/lib/ext/zod.model.yml @@ -0,0 +1,16 @@ +extensions: + - addsTo: + pack: codeql/javascript-all + extensible: typeModel + data: + - ["zod", "zod/v3", ""] + - ["zod", "zod/v4", ""] + + - addsTo: + pack: codeql/javascript-all + extensible: summaryModel + data: + - ["zod", "Fuzzy.Member[parse]", "Argument[0]", "ReturnValue", "value"] + - ["zod", "Fuzzy.Member[safeParse]", "Argument[0]", "ReturnValue.Member[data]", "value"] + - ["zod", "Fuzzy.Member[parseAsync]", "Argument[0]", "ReturnValue.Awaited", "value"] + - ["zod", "Fuzzy.Member[safeParseAsync]", "Argument[0]", "ReturnValue.Awaited.Member[data]", "value"] diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index ca5a8e3c52b6..d42fdd6cb52e 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 3.0.0 +version: 3.0.1-dev groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/lib/semmle/javascript/Regexp.qll b/javascript/ql/lib/semmle/javascript/Regexp.qll index c42df3939c22..49702214bc62 100644 --- a/javascript/ql/lib/semmle/javascript/Regexp.qll +++ b/javascript/ql/lib/semmle/javascript/Regexp.qll @@ -1275,16 +1275,26 @@ module RegExp { bindingset[flags] predicate maybeDotAll(string flags) { flags = unknownFlag() or isDotAll(flags) } - /** Holds if `term` and all of its disjuncts are anchored on both ends. */ + /** + * Holds if `term` and all of its disjuncts are anchored to both ends of the input. + * + * Does not hold if a regular expression using the term has multiline or unknown flags. + */ predicate isFullyAnchoredTerm(RegExpTerm term) { - exists(RegExpSequence seq | term = seq | - seq.getChild(0) instanceof RegExpCaret and - seq.getLastChild() instanceof RegExpDollar + not exists(DataFlow::RegExpCreationNode regexp | + regexp.getRoot() = term.getRootTerm() and + maybeMultiline(regexp.tryGetFlags()) + ) and + ( + exists(RegExpSequence seq | term = seq | + seq.getChild(0) instanceof RegExpCaret and + seq.getLastChild() instanceof RegExpDollar + ) + or + isFullyAnchoredTerm(term.(RegExpGroup).getAChild()) + or + isFullyAnchoredAlt(term, term.getNumChild()) ) - or - isFullyAnchoredTerm(term.(RegExpGroup).getAChild()) - or - isFullyAnchoredAlt(term, term.getNumChild()) } /** Holds if the first `i` disjuncts of `term` are fully anchored. */ @@ -1330,6 +1340,8 @@ module RegExp { * * Specifically, whitelisting regexps such as `^(foo|bar)$` sanitize matches in the true case. * Inverted character classes such as `[^a-z]` or `\W` sanitize matches in the false case. + * Anchored terms do not sanitize matches if a regular expression using the term has + * multiline or unknown flags. */ predicate isGenericRegExpSanitizer(RegExpTerm term, boolean outcome) { term.isRootTerm() and diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index b11e2ece684d..d7104940af11 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 2.5.0 +version: 2.5.1-dev groups: - javascript - queries diff --git a/javascript/ql/test/library-tests/RegExpSanitizer/decorators.ts b/javascript/ql/test/library-tests/RegExpSanitizer/decorators.ts new file mode 100644 index 000000000000..d987723ee7ea --- /dev/null +++ b/javascript/ql/test/library-tests/RegExpSanitizer/decorators.ts @@ -0,0 +1,22 @@ +import { Matches } from "class-validator"; + +class Validated { + @Matches(/^\w+$/) // $ sanitizer + singleLine: string; + + @Matches(/^\w+$/m) + multiline: string; + + @Matches(new RegExp("^\\w+$")) // $ sanitizer + constructedSingleLine: string; + + @Matches(new RegExp("^\\w+$", "m")) + constructedMultiline: string; + + @Matches("^\\w+$", "i") // $ sanitizer + stringSingleLine: string; + + // Separate flags for string patterns are not currently covered by the sanitizer model. + @Matches("^\\w+$", "m") // $ SPURIOUS: sanitizer + stringMultiline: string; +} diff --git a/javascript/ql/test/library-tests/RegExpSanitizer/guards.js b/javascript/ql/test/library-tests/RegExpSanitizer/guards.js new file mode 100644 index 000000000000..5428a1d0fe51 --- /dev/null +++ b/javascript/ql/test/library-tests/RegExpSanitizer/guards.js @@ -0,0 +1,123 @@ +function literals() { + const value = source(); + sink(value); // $ flow + + if (/^[\w.-]+$/m.test(value)) { + sink(value); // $ flow + } + if (/^[\w.-]+$/.test(value)) { + sink(value); + } else { + sink(value); // $ flow + } + if (/^[\w.-]+$/i.test(value)) { + sink(value); + } + if (/^[\w.-]+$/s.test(value)) { + sink(value); + } + if (/^[\w.-]+$/m.exec(value)) { + sink(value); // $ flow + } + if (/^[\w.-]+$/.exec(value)) { + sink(value); + } + if (value.match(/^[\w.-]+$/m)) { + sink(value); // $ flow + } + if (value.match(/^[\w.-]+$/)) { + sink(value); + } + if (value.match("^[\\w.-]+$")) { + sink(value); + } + if (value.matchAll(/^[\w.-]+$/gm)) { + sink(value); // $ flow + } +} + +function references() { + const value = source(); + const regexp = /^[\w.-]+$/m; + if (regexp.test(value)) { + sink(value); // $ flow + } + let match; + if (match = regexp.exec(value)) { + sink(value); // $ flow + } +} + +function constructors(flags) { + const value = source(); + if (new RegExp("^[\\w.-]+$", "m").test(value)) { + sink(value); // $ flow + } + if (RegExp("^[\\w.-]+$", "im").test(value)) { + sink(value); // $ flow + } + const multiline = "m"; + if (new RegExp("^[\\w.-]+$", multiline).test(value)) { + sink(value); // $ flow + } + if (new RegExp("^[\\w.-]+$", flags).test(value)) { + sink(value); // $ flow + } + if (new RegExp("^[\\w.-]+$").test(value)) { + sink(value); + } + if (new RegExp("^[\\w.-]+$", "").test(value)) { + sink(value); + } + if (new RegExp("^[\\w.-]+$", "i").test(value)) { + sink(value); + } + if (new RegExp(/^[\w.-]+$/m).test(value)) { + sink(value); // $ flow + } + if (new RegExp(/^[\w.-]+$/, "m").test(value)) { + sink(value); // $ flow + } +} + +function overriddenFlags() { + const value = source(); + // Explicit overrides removing a literal's `m` flag are not currently covered by the sanitizer model. + if (new RegExp(/^[\w.-]+$/m, "").test(value)) { + sink(value); // $ SPURIOUS: flow + } + if (new RegExp(/^[\w.-]+$/m, "i").test(value)) { + sink(value); // $ SPURIOUS: flow + } +} + +function groupsAndAlternatives() { + const value = source(); + if (/(^[\w.-]+$)/m.test(value)) { + sink(value); // $ flow + } + if (/(^[\w.-]+$)/.test(value)) { + sink(value); + } + if (/^foo$|^bar$/m.test(value)) { + sink(value); // $ flow + } + if (/^foo$|^bar$/.test(value)) { + sink(value); + } +} + +function negativeChecks(flags) { + const value = source(); + if (/[^a-z]/m.test(value)) { + sink(value); // $ flow + } else { + sink(value); + } + if (!/\W/m.test(value)) { + sink(value); + } + if (!new RegExp("[^a-z]", flags).test(value)) { + sink(value); + } +} diff --git a/javascript/ql/test/library-tests/RegExpSanitizer/routes.js b/javascript/ql/test/library-tests/RegExpSanitizer/routes.js new file mode 100644 index 000000000000..dabde8e13636 --- /dev/null +++ b/javascript/ql/test/library-tests/RegExpSanitizer/routes.js @@ -0,0 +1,36 @@ +const cp = require("child_process"); +const app = require("express")(); + +app.get("/a", (req, res) => { + const dir = req.query.dir; + if (/^[\w.-]+$/m.test(dir)) { + cp.exec("ls " + dir); // $ command-injection + } + res.send("ok"); +}); + +app.get("/b", (req, res) => { + const dir = req.query.dir; + if (/^[\w.-]+$/.test(dir)) { + cp.exec("ls " + dir); + } + res.send("ok"); +}); + +app.get("/c", (req, res) => { + cp.exec("ls " + req.query.dir); // $ command-injection + res.send("ok"); +}); + +app.get("/d", (req, res) => { + const name = req.query.name; + if (/^\w+$/m.test(name)) { + res.send("

Hello " + name + "

"); // $ reflected-xss + } else { + res.send("bad name"); + } +}); + +app.get("/e", (req, res) => { + res.send("

Hello " + req.query.name + "

"); // $ reflected-xss +}); diff --git a/javascript/ql/test/library-tests/RegExpSanitizer/test.expected b/javascript/ql/test/library-tests/RegExpSanitizer/test.expected new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/javascript/ql/test/library-tests/RegExpSanitizer/test.ql b/javascript/ql/test/library-tests/RegExpSanitizer/test.ql new file mode 100644 index 000000000000..107b616d81bd --- /dev/null +++ b/javascript/ql/test/library-tests/RegExpSanitizer/test.ql @@ -0,0 +1,40 @@ +import javascript +import utils.test.InlineExpectationsTest +import semmle.javascript.frameworks.ClassValidator +import semmle.javascript.security.dataflow.CommandInjectionQuery as CommandInjection +import semmle.javascript.security.dataflow.ReflectedXssQuery as ReflectedXss + +module TestConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + source.(DataFlow::CallNode).getCalleeName() = "source" + } + + predicate isSink(DataFlow::Node sink) { + sink = any(DataFlow::CallNode call | call.getCalleeName() = "sink").getArgument(0) + } +} + +module TestFlow = TaintTracking::Global; + +module InlineTest implements TestSig { + string getARelevantTag() { result = ["flow", "command-injection", "reflected-xss", "sanitizer"] } + + predicate hasActualResult(Location location, string element, string tag, string value) { + element = "" and + value = "" and + exists(DataFlow::Node node | + location = node.getLocation() and + ( + tag = "flow" and TestFlow::flowTo(node) + or + tag = "command-injection" and CommandInjection::CommandInjectionFlow::flowTo(node) + or + tag = "reflected-xss" and ReflectedXss::ReflectedXssFlow::flowTo(node) + or + tag = "sanitizer" and node = ClassValidator::sanitizingDecorator() + ) + ) + } +} + +import MakeTest diff --git a/javascript/ql/test/library-tests/threat-models/sources/fastmcp.ts b/javascript/ql/test/library-tests/threat-models/sources/fastmcp.ts new file mode 100644 index 000000000000..82c07f02c4e9 --- /dev/null +++ b/javascript/ql/test/library-tests/threat-models/sources/fastmcp.ts @@ -0,0 +1,43 @@ +import { FastMCP } from "fastmcp"; +import { z } from "zod"; + +declare function SINK(value: unknown): void; + +const server = new FastMCP({ name: "test", version: "1.0.0" }); + +server.addTool({ + name: "run", + parameters: z.object({ command: z.string() }), + execute: async (args) => { // $ threat-source=ai + SINK(args.command); // $ hasFlow + return ""; + }, +}); + +server.addResourceTemplate({ + uriTemplate: "note://{name}", + name: "note", + arguments: [{ name: "name" }], + async load({ name }) { // $ threat-source=ai + SINK(name); // $ hasFlow + return { text: "" }; + }, +}); + +server.addPrompt({ + name: "summarize", + arguments: [{ name: "topic" }], + load: async ({ topic }) => { // $ threat-source=ai + SINK(topic); // $ hasFlow + return ""; + }, +}); + +// A static resource takes no arguments: no source. +server.addResource({ + uri: "file:///log", + name: "log", + async load() { + return { text: "" }; + }, +}); diff --git a/javascript/ql/test/library-tests/threat-models/sources/mcp.ts b/javascript/ql/test/library-tests/threat-models/sources/mcp.ts new file mode 100644 index 000000000000..1e8310d6a2f1 --- /dev/null +++ b/javascript/ql/test/library-tests/threat-models/sources/mcp.ts @@ -0,0 +1,112 @@ +import { Server } from "@modelcontextprotocol/sdk/server/index.js"; +import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js"; +import { McpServer as McpServerNoSuffix } from "@modelcontextprotocol/sdk/server/mcp"; +import { CallToolRequestSchema } from "@modelcontextprotocol/sdk/types.js"; +import { McpServer as McpServerV2, Server as ServerV2 } from "@modelcontextprotocol/server"; +import { z } from "zod"; + +declare function SINK(value: unknown): void; + +const server = new McpServer({ name: "test", version: "1.0.0" }); + +// Tools and prompts: the first parameter of the callback holds the arguments. +server.tool("run", { command: z.string() }, async ({ command }) => { // $ threat-source=ai + SINK(command); // $ hasFlow + return { content: [] }; +}); + +server.tool("read", "Read a file", { path: z.string() }, async (args) => { // $ threat-source=ai + SINK(args.path); // $ hasFlow + return { content: [] }; +}); + +server.registerTool("fetch", { inputSchema: { url: z.string() } }, async ({ url }) => { // $ threat-source=ai + SINK(url); // $ hasFlow + return { content: [] }; +}); + +async function namedHandler({ target }: { target: string }) { // $ threat-source=ai + SINK(target); // $ hasFlow + return { content: [] }; +} +server.tool("remove", { target: z.string() }, namedHandler); + +server.prompt("summarize", { topic: z.string() }, ({ topic }) => { // $ threat-source=ai + SINK(topic); // $ hasFlow + return { messages: [] }; +}); + +server.registerPrompt("explain", { argsSchema: { file: z.string() } }, ({ file }) => { // $ threat-source=ai + SINK(file); // $ hasFlow + return { messages: [] }; +}); + +// Resources: the URI and the variables of the template. +server.resource("note", new ResourceTemplate("note://{name}", { list: undefined }), async (uri, { name }) => { // $ threat-source=ai + SINK(uri.href); // $ hasFlow + SINK(name); // $ hasFlow + return { contents: [] }; +}); + +server.registerResource("page", new ResourceTemplate("page://{host}", { list: undefined }), {}, async (uri, variables) => { // $ threat-source=ai + SINK(variables.host); // $ hasFlow + return { contents: [] }; +}); + +// The request headers and the bearer token that the SDK hands to a callback. +server.tool("forward", { id: z.string() }, async (_args, extra) => { // $ threat-source=ai + SINK(extra.requestInfo?.headers["x-target"]); // $ hasFlow threat-source=remote + SINK(extra.authInfo?.token); // $ hasFlow threat-source=remote + SINK(extra.sessionId); + return { content: [] }; +}); + +// The low-level server: handlers receive the request. +const lowLevel = new Server({ name: "test", version: "1.0.0" }, { capabilities: { tools: {} } }); +lowLevel.setRequestHandler(CallToolRequestSchema, async (request) => { + SINK(request.params.arguments?.command); // $ hasFlow threat-source=ai + return { content: [] }; +}); + +server.server.setRequestHandler(CallToolRequestSchema, async (request) => { + SINK(request.params.name); // $ hasFlow threat-source=ai + return { content: [] }; +}); + +// An import path without the file suffix, and a server that arrives as a typed parameter. +new McpServerNoSuffix({ name: "test", version: "1.0.0" }).tool("run", { command: z.string() }, async ({ command }) => { // $ threat-source=ai + SINK(command); // $ hasFlow + return { content: [] }; +}); + +export function register(target: McpServer) { + target.tool("run", { command: z.string() }, async ({ command }) => { // $ threat-source=ai + SINK(command); // $ hasFlow + return { content: [] }; + }); +} + +// Version 2 of the SDK: one package, and a context object instead of `extra`. +const serverV2 = new McpServerV2({ name: "test", version: "2.0.0" }); +serverV2.registerTool("fetch", { inputSchema: z.object({ url: z.string() }) }, async ({ url }, ctx) => { // $ threat-source=ai + SINK(url); // $ hasFlow + SINK(ctx.http?.req.headers.get("x-target")); // $ hasFlow threat-source=remote + SINK(ctx.http?.authInfo?.token); // $ hasFlow threat-source=remote + return { content: [] }; +}); + +const lowLevelV2 = new ServerV2({ name: "test", version: "2.0.0" }); +lowLevelV2.setRequestHandler("tools/call", async (request) => { + SINK(request.params.arguments); // $ hasFlow threat-source=ai + return { content: [] }; +}); + +lowLevelV2.setRequestHandler("acme/search", { params: z.object({ query: z.string() }), result: z.object({}) }, async (params) => { // $ threat-source=ai + SINK(params.query); // $ hasFlow + return {}; +}); + +// Not registered with a server: no source. +export function notAHandler(command: string) { + SINK(command); +} diff --git a/javascript/ql/test/library-tests/threat-models/sources/zod.ts b/javascript/ql/test/library-tests/threat-models/sources/zod.ts new file mode 100644 index 000000000000..fa5177540fbb --- /dev/null +++ b/javascript/ql/test/library-tests/threat-models/sources/zod.ts @@ -0,0 +1,30 @@ +import { z } from "zod"; +import * as z4 from "zod/v4"; + +declare function SINK(value: unknown): void; + +const raw = JSON.parse(process.argv[2]); // $ threat-source=commandargs + +const Options = z.object({ command: z.string() }); +const NextOptions = z4.object({ command: z4.string() }); + +SINK(Options.parse(raw).command); // $ hasFlow +SINK(NextOptions.parse(raw).command); // $ hasFlow + +const checked = Options.safeParse(raw); +if (checked.success) { + SINK(checked.data.command); // $ hasFlow +} +SINK(checked.error); + +async function later() { + SINK((await Options.parseAsync(raw)).command); // $ hasFlow + + const result = await Options.safeParseAsync(raw); + if (result.success) { + SINK(result.data.command); // $ hasFlow + } +} + +// A value that did not come from a source stays clean. +SINK(Options.parse({ command: "ls" }).command); diff --git a/misc/bazel/3rdparty/py_deps/BUILD.aho-corasick-1.1.3.bazel b/misc/bazel/3rdparty/py_deps/BUILD.aho-corasick-1.1.3.bazel index 67430ddf867d..5f823494433a 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.aho-corasick-1.1.3.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.aho-corasick-1.1.3.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.anstream-0.6.18.bazel b/misc/bazel/3rdparty/py_deps/BUILD.anstream-0.6.18.bazel index 3f1fe4694c67..9d3a69739bcb 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.anstream-0.6.18.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.anstream-0.6.18.bazel @@ -81,6 +81,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.anstyle-1.0.10.bazel b/misc/bazel/3rdparty/py_deps/BUILD.anstyle-1.0.10.bazel index 374fbe3ce6d5..e0a90aacc31a 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.anstyle-1.0.10.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.anstyle-1.0.10.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.anstyle-parse-0.2.6.bazel b/misc/bazel/3rdparty/py_deps/BUILD.anstyle-parse-0.2.6.bazel index a70f05b61fbd..bfb7497fc54d 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.anstyle-parse-0.2.6.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.anstyle-parse-0.2.6.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.anstyle-query-1.1.2.bazel b/misc/bazel/3rdparty/py_deps/BUILD.anstyle-query-1.1.2.bazel index 358cbf6c5230..bebe3d1a0424 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.anstyle-query-1.1.2.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.anstyle-query-1.1.2.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.anstyle-wincon-3.0.7.bazel b/misc/bazel/3rdparty/py_deps/BUILD.anstyle-wincon-3.0.7.bazel index 40668f3a5498..3839fef1c5cf 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.anstyle-wincon-3.0.7.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.anstyle-wincon-3.0.7.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.anyhow-1.0.95.bazel b/misc/bazel/3rdparty/py_deps/BUILD.anyhow-1.0.95.bazel index cb9802c5fbe7..bbe8f270261c 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.anyhow-1.0.95.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.anyhow-1.0.95.bazel @@ -84,6 +84,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.cc-1.2.14.bazel b/misc/bazel/3rdparty/py_deps/BUILD.cc-1.2.14.bazel index 9303689d18e8..22e41d54d09d 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.cc-1.2.14.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.cc-1.2.14.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.clap-4.5.30.bazel b/misc/bazel/3rdparty/py_deps/BUILD.clap-4.5.30.bazel index 95778c79e333..9099429bdcac 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.clap-4.5.30.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.clap-4.5.30.bazel @@ -85,6 +85,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.clap_builder-4.5.30.bazel b/misc/bazel/3rdparty/py_deps/BUILD.clap_builder-4.5.30.bazel index 7032210081db..8ec27b8b424c 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.clap_builder-4.5.30.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.clap_builder-4.5.30.bazel @@ -84,6 +84,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.clap_lex-0.7.4.bazel b/misc/bazel/3rdparty/py_deps/BUILD.clap_lex-0.7.4.bazel index 2e744e19f1ae..34397e853e23 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.clap_lex-0.7.4.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.clap_lex-0.7.4.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.colorchoice-1.0.3.bazel b/misc/bazel/3rdparty/py_deps/BUILD.colorchoice-1.0.3.bazel index 6da8a1f3df80..7d7fb7efd74d 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.colorchoice-1.0.3.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.colorchoice-1.0.3.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.is_terminal_polyfill-1.70.1.bazel b/misc/bazel/3rdparty/py_deps/BUILD.is_terminal_polyfill-1.70.1.bazel index 05926bb971c5..74d0dc6e84bc 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.is_terminal_polyfill-1.70.1.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.is_terminal_polyfill-1.70.1.bazel @@ -79,6 +79,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.itoa-1.0.14.bazel b/misc/bazel/3rdparty/py_deps/BUILD.itoa-1.0.14.bazel index 0dffc34791c8..5ba2691a61ec 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.itoa-1.0.14.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.itoa-1.0.14.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.log-0.4.25.bazel b/misc/bazel/3rdparty/py_deps/BUILD.log-0.4.25.bazel index 7f8cd3b094d6..64a54cfa02da 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.log-0.4.25.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.log-0.4.25.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.memchr-2.7.4.bazel b/misc/bazel/3rdparty/py_deps/BUILD.memchr-2.7.4.bazel index 54e543b134e6..1f136ad74de9 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.memchr-2.7.4.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.memchr-2.7.4.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.once_cell-1.20.3.bazel b/misc/bazel/3rdparty/py_deps/BUILD.once_cell-1.20.3.bazel index e119c92111cc..1cf15b80473f 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.once_cell-1.20.3.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.once_cell-1.20.3.bazel @@ -82,6 +82,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.proc-macro2-1.0.93.bazel b/misc/bazel/3rdparty/py_deps/BUILD.proc-macro2-1.0.93.bazel index 73045c65b539..9df42dc41a0b 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.proc-macro2-1.0.93.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.proc-macro2-1.0.93.bazel @@ -84,6 +84,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.quote-1.0.38.bazel b/misc/bazel/3rdparty/py_deps/BUILD.quote-1.0.38.bazel index a62648df9576..e96d25a87e94 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.quote-1.0.38.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.quote-1.0.38.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.regex-1.11.1.bazel b/misc/bazel/3rdparty/py_deps/BUILD.regex-1.11.1.bazel index c8549ff105ca..bb4f042072da 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.regex-1.11.1.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.regex-1.11.1.bazel @@ -95,6 +95,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.regex-automata-0.4.9.bazel b/misc/bazel/3rdparty/py_deps/BUILD.regex-automata-0.4.9.bazel index 5c61023243fd..6317b89c3fbc 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.regex-automata-0.4.9.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.regex-automata-0.4.9.bazel @@ -100,6 +100,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.regex-syntax-0.8.5.bazel b/misc/bazel/3rdparty/py_deps/BUILD.regex-syntax-0.8.5.bazel index 6b1480dce01a..0ea7871f674b 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.regex-syntax-0.8.5.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.regex-syntax-0.8.5.bazel @@ -88,6 +88,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.ryu-1.0.19.bazel b/misc/bazel/3rdparty/py_deps/BUILD.ryu-1.0.19.bazel index d598e526522a..f756ea90397e 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.ryu-1.0.19.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.ryu-1.0.19.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.serde-1.0.217.bazel b/misc/bazel/3rdparty/py_deps/BUILD.serde-1.0.217.bazel index a3b116bd4118..33cdcbef5b9f 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.serde-1.0.217.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.serde-1.0.217.bazel @@ -84,6 +84,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.serde_derive-1.0.217.bazel b/misc/bazel/3rdparty/py_deps/BUILD.serde_derive-1.0.217.bazel index ad6bea845a88..0f6df23c96d8 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.serde_derive-1.0.217.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.serde_derive-1.0.217.bazel @@ -76,6 +76,7 @@ rust_proc_macro( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.serde_json-1.0.138.bazel b/misc/bazel/3rdparty/py_deps/BUILD.serde_json-1.0.138.bazel index 50ea1828c00e..65b784a58ad5 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.serde_json-1.0.138.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.serde_json-1.0.138.bazel @@ -84,6 +84,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.shlex-1.3.0.bazel b/misc/bazel/3rdparty/py_deps/BUILD.shlex-1.3.0.bazel index 7ad7a1fa71bd..a90a6e7bd1aa 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.shlex-1.3.0.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.shlex-1.3.0.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.smallvec-1.14.0.bazel b/misc/bazel/3rdparty/py_deps/BUILD.smallvec-1.14.0.bazel index 6f3e09e2f8b2..23c92f59d61d 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.smallvec-1.14.0.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.smallvec-1.14.0.bazel @@ -79,6 +79,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.streaming-iterator-0.1.9.bazel b/misc/bazel/3rdparty/py_deps/BUILD.streaming-iterator-0.1.9.bazel index 6e1f7d009ec4..41789510f89f 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.streaming-iterator-0.1.9.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.streaming-iterator-0.1.9.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.strsim-0.11.1.bazel b/misc/bazel/3rdparty/py_deps/BUILD.strsim-0.11.1.bazel index 502076f07593..6e9f2bcc7888 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.strsim-0.11.1.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.strsim-0.11.1.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.syn-2.0.98.bazel b/misc/bazel/3rdparty/py_deps/BUILD.syn-2.0.98.bazel index 53a38fda064f..9e5abb1b354b 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.syn-2.0.98.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.syn-2.0.98.bazel @@ -84,6 +84,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.thiserror-1.0.69.bazel b/misc/bazel/3rdparty/py_deps/BUILD.thiserror-1.0.69.bazel index ae33aae79229..9580296b4be6 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.thiserror-1.0.69.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.thiserror-1.0.69.bazel @@ -83,6 +83,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.thiserror-impl-1.0.69.bazel b/misc/bazel/3rdparty/py_deps/BUILD.thiserror-impl-1.0.69.bazel index 7beef57d9608..180c8002ff85 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.thiserror-impl-1.0.69.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.thiserror-impl-1.0.69.bazel @@ -76,6 +76,7 @@ rust_proc_macro( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-0.24.7.bazel b/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-0.24.7.bazel index 2858d4c5136b..e42c064f9a96 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-0.24.7.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-0.24.7.bazel @@ -84,6 +84,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-graph-0.12.0.bazel b/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-graph-0.12.0.bazel index 91b0d1eadf65..a723d4b76a4c 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-graph-0.12.0.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-graph-0.12.0.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-language-0.1.5.bazel b/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-language-0.1.5.bazel index 14ccbfade289..598297b63abf 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-language-0.1.5.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.tree-sitter-language-0.1.5.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.unicode-ident-1.0.16.bazel b/misc/bazel/3rdparty/py_deps/BUILD.unicode-ident-1.0.16.bazel index 63420f8a0fc0..ae11f61dee30 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.unicode-ident-1.0.16.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.unicode-ident-1.0.16.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.utf8parse-0.2.2.bazel b/misc/bazel/3rdparty/py_deps/BUILD.utf8parse-0.2.2.bazel index e53fb8eb55c1..0add161c5aa8 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.utf8parse-0.2.2.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.utf8parse-0.2.2.bazel @@ -79,6 +79,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.windows-sys-0.59.0.bazel b/misc/bazel/3rdparty/py_deps/BUILD.windows-sys-0.59.0.bazel index f2d6e69bfdb0..c6c654a891d8 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.windows-sys-0.59.0.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.windows-sys-0.59.0.bazel @@ -83,6 +83,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.windows-targets-0.52.6.bazel b/misc/bazel/3rdparty/py_deps/BUILD.windows-targets-0.52.6.bazel index caef5d4be7ab..709038f51c06 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.windows-targets-0.52.6.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.windows-targets-0.52.6.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.windows_aarch64_gnullvm-0.52.6.bazel b/misc/bazel/3rdparty/py_deps/BUILD.windows_aarch64_gnullvm-0.52.6.bazel index 201dc214ec5e..a71850308dc4 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.windows_aarch64_gnullvm-0.52.6.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.windows_aarch64_gnullvm-0.52.6.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.windows_aarch64_msvc-0.52.6.bazel b/misc/bazel/3rdparty/py_deps/BUILD.windows_aarch64_msvc-0.52.6.bazel index eaa95b7effe5..6a599b3f4d9c 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.windows_aarch64_msvc-0.52.6.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.windows_aarch64_msvc-0.52.6.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.windows_i686_gnu-0.52.6.bazel b/misc/bazel/3rdparty/py_deps/BUILD.windows_i686_gnu-0.52.6.bazel index 4417810cacae..3a5460fff15f 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.windows_i686_gnu-0.52.6.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.windows_i686_gnu-0.52.6.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.windows_i686_gnullvm-0.52.6.bazel b/misc/bazel/3rdparty/py_deps/BUILD.windows_i686_gnullvm-0.52.6.bazel index e027b79a0dfe..09ff7272136f 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.windows_i686_gnullvm-0.52.6.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.windows_i686_gnullvm-0.52.6.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.windows_i686_msvc-0.52.6.bazel b/misc/bazel/3rdparty/py_deps/BUILD.windows_i686_msvc-0.52.6.bazel index b658f58affd4..3d04941b0bbb 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.windows_i686_msvc-0.52.6.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.windows_i686_msvc-0.52.6.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.windows_x86_64_gnu-0.52.6.bazel b/misc/bazel/3rdparty/py_deps/BUILD.windows_x86_64_gnu-0.52.6.bazel index 56e8b8bced09..361ecbd90202 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.windows_x86_64_gnu-0.52.6.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.windows_x86_64_gnu-0.52.6.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.windows_x86_64_gnullvm-0.52.6.bazel b/misc/bazel/3rdparty/py_deps/BUILD.windows_x86_64_gnullvm-0.52.6.bazel index c4a7d1a89087..b862c99fe5ef 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.windows_x86_64_gnullvm-0.52.6.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.windows_x86_64_gnullvm-0.52.6.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/BUILD.windows_x86_64_msvc-0.52.6.bazel b/misc/bazel/3rdparty/py_deps/BUILD.windows_x86_64_msvc-0.52.6.bazel index 6df588218373..adbd306abe2a 100644 --- a/misc/bazel/3rdparty/py_deps/BUILD.windows_x86_64_msvc-0.52.6.bazel +++ b/misc/bazel/3rdparty/py_deps/BUILD.windows_x86_64_msvc-0.52.6.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/py_deps/crates.bzl b/misc/bazel/3rdparty/py_deps/crates.bzl index 910447b78db4..ac9849d0407b 100644 --- a/misc/bazel/3rdparty/py_deps/crates.bzl +++ b/misc/bazel/3rdparty/py_deps/crates.bzl @@ -457,6 +457,7 @@ _CONDITIONS = { "powerpc-unknown-linux-gnu": ["@rules_rust//rust/platform:powerpc-unknown-linux-gnu"], "riscv32imac-unknown-none-elf": ["@rules_rust//rust/platform:riscv32imac-unknown-none-elf"], "riscv32imc-unknown-none-elf": ["@rules_rust//rust/platform:riscv32imc-unknown-none-elf"], + "riscv64gc-unknown-fuchsia": ["@rules_rust//rust/platform:riscv64gc-unknown-fuchsia"], "riscv64gc-unknown-linux-gnu": ["@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu"], "riscv64gc-unknown-none-elf": ["@rules_rust//rust/platform:riscv64gc-unknown-none-elf"], "s390x-unknown-linux-gnu": ["@rules_rust//rust/platform:s390x-unknown-linux-gnu"], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.adler2-2.0.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.adler2-2.0.1.bazel index dbd1849d4a9c..366019a460c1 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.adler2-2.0.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.adler2-2.0.1.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.aho-corasick-1.1.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.aho-corasick-1.1.5.bazel index ffdb58ca333d..981ae89bc50f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.aho-corasick-1.1.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.aho-corasick-1.1.5.bazel @@ -81,6 +81,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.allocator-api2-0.2.21.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.allocator-api2-0.2.21.bazel index 99c359be3dc7..cfd6564b49db 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.allocator-api2-0.2.21.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.allocator-api2-0.2.21.bazel @@ -79,6 +79,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.android_system_properties-0.1.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.android_system_properties-0.1.5.bazel index 4802a82d4912..89c7235b0a49 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.android_system_properties-0.1.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.android_system_properties-0.1.5.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstream-1.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstream-1.0.0.bazel index c58f7a2cd263..025f95da7ac1 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstream-1.0.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstream-1.0.0.bazel @@ -81,6 +81,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-1.0.14.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-1.0.14.bazel index 0fc9c7ed0d47..d60ac181c7fa 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-1.0.14.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-1.0.14.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-parse-1.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-parse-1.0.0.bazel index c962383c601a..68ebf2e32ffd 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-parse-1.0.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-parse-1.0.0.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-query-1.1.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-query-1.1.5.bazel index be44598b9c65..6db11937a90b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-query-1.1.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-query-1.1.5.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-wincon-3.0.11.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-wincon-3.0.11.bazel index d60d14088302..f7c9faa76301 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-wincon-3.0.11.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anstyle-wincon-3.0.11.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anyhow-1.0.104.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anyhow-1.0.104.bazel index 17bcad0deff0..c9287efb9470 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anyhow-1.0.104.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anyhow-1.0.104.bazel @@ -84,6 +84,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.argfile-1.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.argfile-1.0.0.bazel deleted file mode 100644 index baae4d331abe..000000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.argfile-1.0.0.bazel +++ /dev/null @@ -1,117 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -cargo_toml_env_vars( - name = "cargo_toml_env_vars", - src = "Cargo.toml", -) - -rust_library( - name = "argfile", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_features = [ - "default", - ], - crate_root = "src/lib.rs", - edition = "2021", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=argfile", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-macabi": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-none": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:loongarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:mips-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:sparc64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:sparc64-unknown-netbsd": [], - "@rules_rust//rust/platform:sparc64-unknown-openbsd": [], - "@rules_rust//rust/platform:thumbv6m-none-eabi": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv7em-none-eabihf": [], - "@rules_rust//rust/platform:thumbv7m-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabihf": [], - "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:wasm32-wasip1-threads": [], - "@rules_rust//rust/platform:wasm32-wasip2": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-apple-ios-macabi": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "1.0.0", - deps = [ - "@vendor_ts__fs-err-3.3.0//:fs_err", - "@vendor_ts__os_str_bytes-7.2.0//:os_str_bytes", - ], -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.arrayvec-0.7.8.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.arrayvec-0.7.8.bazel index c16e02e7515e..03a8ac873d3e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.arrayvec-0.7.8.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.arrayvec-0.7.8.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.atomic-0.6.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.atomic-0.6.1.bazel index 744c4b168ed0..4c1080884944 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.atomic-0.6.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.atomic-0.6.1.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.autocfg-1.5.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.autocfg-1.5.1.bazel index c37ceeee8be7..415d4c0423bf 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.autocfg-1.5.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.autocfg-1.5.1.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.base64-0.23.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.base64-0.23.1.bazel index 55a0c65e7300..4b53a4f2273d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.base64-0.23.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.base64-0.23.1.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bazel index 700bb9238b50..377f236a841b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bazel @@ -43,18 +43,6 @@ alias( tags = ["manual"], ) -alias( - name = "argfile-1.0.0", - actual = "@vendor_ts__argfile-1.0.0//:argfile", - tags = ["manual"], -) - -alias( - name = "argfile", - actual = "@vendor_ts__argfile-1.0.0//:argfile", - tags = ["manual"], -) - alias( name = "chalk-ir-0.104.0", actual = "@vendor_ts__chalk-ir-0.104.0//:chalk_ir", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-1.3.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-1.3.2.bazel index 20bbe9c068a9..ed1afd8c2206 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-1.3.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-1.3.2.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-2.13.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-2.13.2.bazel index 3db03a0bfe17..a3299640ec07 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-2.13.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-2.13.2.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.borsh-1.8.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.borsh-1.8.1.bazel index 763e7123f3bb..1eb13ca6ae9f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.borsh-1.8.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.borsh-1.8.1.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.boxcar-0.2.14.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.boxcar-0.2.14.bazel index eca4e832c4b8..819b934ab728 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.boxcar-0.2.14.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.boxcar-0.2.14.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bs58-0.5.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bs58-0.5.1.bazel index 88a0e7c23613..af86c7435264 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bs58-0.5.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bs58-0.5.1.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bstr-1.12.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bstr-1.12.1.bazel index da7e97714681..b081b908de87 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bstr-1.12.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bstr-1.12.1.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bumpalo-3.20.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bumpalo-3.20.3.bazel index af7caf142940..557cc44f2661 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bumpalo-3.20.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bumpalo-3.20.3.bazel @@ -79,6 +79,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bytemuck-1.25.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bytemuck-1.25.0.bazel index f4608f644ff0..d7ccd6d4bb76 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bytemuck-1.25.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bytemuck-1.25.0.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bytes-1.12.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bytes-1.12.1.bazel index a9491426dcdd..1c58ac64f985 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bytes-1.12.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bytes-1.12.1.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.camino-1.2.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.camino-1.2.6.bazel index 2156930e39f7..3180d6ac3a19 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.camino-1.2.6.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.camino-1.2.6.bazel @@ -83,6 +83,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-platform-0.3.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-platform-0.3.3.bazel index 84441a27aeff..73de9722da6b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-platform-0.3.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-platform-0.3.3.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo_metadata-0.23.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo_metadata-0.23.1.bazel index 971d009fb8d5..cf41820c13b2 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo_metadata-0.23.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo_metadata-0.23.1.bazel @@ -79,6 +79,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cc-1.4.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cc-1.4.6.bazel index 5c24e5186e83..0b3c82a27505 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cc-1.4.6.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cc-1.4.6.bazel @@ -79,6 +79,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg-if-1.0.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg-if-1.0.4.bazel index 9d987cefc005..d4bd1e6e175c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg-if-1.0.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg-if-1.0.4.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg_aliases-0.2.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg_aliases-0.2.2.bazel index b31b373c6558..2fb7dabb61f8 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg_aliases-0.2.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg_aliases-0.2.2.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chacha20-0.10.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chacha20-0.10.2.bazel index dfd90b417f0c..61bbea6c8b7a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chacha20-0.10.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chacha20-0.10.2.bazel @@ -79,6 +79,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-derive-0.104.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-derive-0.104.0.bazel index 572862345f27..ddebd069a0fe 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-derive-0.104.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-derive-0.104.0.bazel @@ -76,6 +76,7 @@ rust_proc_macro( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-ir-0.104.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-ir-0.104.0.bazel index 31010432bf93..df1202b8b8e8 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-ir-0.104.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-ir-0.104.0.bazel @@ -79,6 +79,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chrono-0.4.45.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chrono-0.4.45.bazel index d8d948f5fc55..1b4e09146988 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chrono-0.4.45.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chrono-0.4.45.bazel @@ -91,6 +91,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], @@ -192,6 +193,9 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ "@vendor_ts__iana-time-zone-0.1.65//:iana_time_zone", # powerpc-unknown-linux-gnu ], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [ + "@vendor_ts__iana-time-zone-0.1.65//:iana_time_zone", # riscv64gc-unknown-fuchsia + ], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [ "@vendor_ts__iana-time-zone-0.1.65//:iana_time_zone", # riscv64gc-unknown-linux-gnu ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap-4.6.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap-4.6.7.bazel index 5f67ad8584f1..afafcf99b7f3 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap-4.6.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap-4.6.7.bazel @@ -89,6 +89,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_builder-4.6.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_builder-4.6.7.bazel index b40612f99294..1c641a988b0f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_builder-4.6.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_builder-4.6.7.bazel @@ -84,6 +84,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_derive-4.6.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_derive-4.6.7.bazel index 635cff89a9d4..e1b037abc136 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_derive-4.6.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_derive-4.6.7.bazel @@ -79,6 +79,7 @@ rust_proc_macro( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_lex-1.1.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_lex-1.1.1.bazel index 63d663d010d1..b986bd49a2ff 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_lex-1.1.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_lex-1.1.1.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cobs-0.3.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cobs-0.3.0.bazel index 22ed036b1abf..7ccc36c1b404 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cobs-0.3.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cobs-0.3.0.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.colorchoice-1.0.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.colorchoice-1.0.5.bazel index e0c30d441ded..083214c2ec83 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.colorchoice-1.0.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.colorchoice-1.0.5.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.core-foundation-sys-0.8.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.core-foundation-sys-0.8.7.bazel index c3f9a4384887..9be39ffb26d8 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.core-foundation-sys-0.8.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.core-foundation-sys-0.8.7.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.countme-3.0.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.countme-3.0.1.bazel index 31c0932048a5..1ebbc222c8c0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.countme-3.0.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.countme-3.0.1.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cov-mark-2.2.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cov-mark-2.2.0.bazel index 083abb9e6774..acd27bf8b539 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cov-mark-2.2.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cov-mark-2.2.0.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cpufeatures-0.3.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cpufeatures-0.3.1.bazel index c27bd552f05f..32cf7f63e27d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cpufeatures-0.3.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cpufeatures-0.3.1.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crc32fast-1.5.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crc32fast-1.5.0.bazel index ad0b2007fd41..9b3f592cc34d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crc32fast-1.5.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crc32fast-1.5.0.bazel @@ -84,6 +84,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-channel-0.5.17.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-channel-0.5.17.bazel index e3479757251a..9b6519fbb399 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-channel-0.5.17.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-channel-0.5.17.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-deque-0.8.8.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-deque-0.8.8.bazel index 96536ddd829e..7b0843bd4d8e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-deque-0.8.8.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-deque-0.8.8.bazel @@ -84,6 +84,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-epoch-0.9.21.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-epoch-0.9.21.bazel index eba594a91a37..a0d9b27a60b5 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-epoch-0.9.21.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-epoch-0.9.21.bazel @@ -84,6 +84,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-queue-0.3.14.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-queue-0.3.14.bazel index 5d7897461888..07bd4d3f7565 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-queue-0.3.14.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-queue-0.3.14.bazel @@ -81,6 +81,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-utils-0.8.23.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-utils-0.8.23.bazel index b399f89ca53e..cde028f5e7e3 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-utils-0.8.23.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-utils-0.8.23.bazel @@ -84,6 +84,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling-0.24.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling-0.24.1.bazel index d5660e3e3c0c..8ab407c520b5 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling-0.24.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling-0.24.1.bazel @@ -83,6 +83,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_core-0.24.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_core-0.24.1.bazel index a74305a836a1..7edc6a17fc7c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_core-0.24.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_core-0.24.1.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_macro-0.24.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_macro-0.24.1.bazel index c16f39a94ad7..65c54ccf86b9 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_macro-0.24.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_macro-0.24.1.bazel @@ -76,6 +76,7 @@ rust_proc_macro( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dashmap-6.2.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dashmap-6.2.1.bazel index 8936cae6e0e4..3317487d5e55 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dashmap-6.2.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dashmap-6.2.1.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.defmt-1.1.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.defmt-1.1.1.bazel index 0dbaddc782d8..2d2e8cb5ed5d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.defmt-1.1.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.defmt-1.1.1.bazel @@ -83,6 +83,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.defmt-macros-1.1.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.defmt-macros-1.1.1.bazel index 71c8b152e00e..aac6952874a0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.defmt-macros-1.1.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.defmt-macros-1.1.1.bazel @@ -80,6 +80,7 @@ rust_proc_macro( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.defmt-parser-1.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.defmt-parser-1.0.0.bazel index 852811357a37..a551c929855c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.defmt-parser-1.0.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.defmt-parser-1.0.0.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.deranged-0.5.8.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.deranged-0.5.8.bazel index c0c0362f112f..49a4bcf90619 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.deranged-0.5.8.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.deranged-0.5.8.bazel @@ -79,6 +79,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.derive-where-1.6.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.derive-where-1.6.1.bazel index bf458f19425f..640008bde8eb 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.derive-where-1.6.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.derive-where-1.6.1.bazel @@ -76,6 +76,7 @@ rust_proc_macro( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dissimilar-1.0.11.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dissimilar-1.0.11.bazel index beb02d9fa4e2..fe2313763436 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dissimilar-1.0.11.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dissimilar-1.0.11.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.drop_bomb-0.1.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.drop_bomb-0.1.5.bazel index c79036f96af7..d34c3b953ea5 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.drop_bomb-0.1.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.drop_bomb-0.1.5.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dunce-1.0.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dunce-1.0.5.bazel index f739664bb789..4af007fda360 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dunce-1.0.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dunce-1.0.5.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dyn-clone-1.0.20.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dyn-clone-1.0.20.bazel index 3594f9820aaf..ab82405b98e9 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dyn-clone-1.0.20.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dyn-clone-1.0.20.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.either-1.19.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.either-1.19.0.bazel index aeb6e5bf121f..3993e8f4f986 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.either-1.19.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.either-1.19.0.bazel @@ -81,6 +81,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.embedded-io-0.4.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.embedded-io-0.4.0.bazel index efeec21491db..3e4b84dba6f5 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.embedded-io-0.4.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.embedded-io-0.4.0.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.embedded-io-0.6.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.embedded-io-0.6.1.bazel index 6c43e92a25cc..a4c634d7a8c2 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.embedded-io-0.6.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.embedded-io-0.6.1.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ena-0.14.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ena-0.14.4.bazel index a3e2f57b5009..7022cc97e43d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ena-0.14.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ena-0.14.4.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-0.2.33.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-0.2.33.bazel index 4a65fece6e8f..a40f6a3aac71 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-0.2.33.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-0.2.33.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-japanese-1.20141219.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-japanese-1.20141219.5.bazel index 5896a9ecc42d..a42e4a599bcb 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-japanese-1.20141219.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-japanese-1.20141219.5.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-korean-1.20141219.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-korean-1.20141219.5.bazel index 078ff6accb97..dcf8733b237c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-korean-1.20141219.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-korean-1.20141219.5.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-simpchinese-1.20141219.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-simpchinese-1.20141219.5.bazel index 52bcf54429ab..d3c6c44cf730 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-simpchinese-1.20141219.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-simpchinese-1.20141219.5.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-singlebyte-1.20141219.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-singlebyte-1.20141219.5.bazel index 8f904e6a7aca..f9b6e9842b8a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-singlebyte-1.20141219.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-singlebyte-1.20141219.5.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-tradchinese-1.20141219.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-tradchinese-1.20141219.5.bazel index 4ec1935d1a7f..5639d7c37ca8 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-tradchinese-1.20141219.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding-index-tradchinese-1.20141219.5.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding_index_tests-0.1.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding_index_tests-0.1.4.bazel index db14708f8670..08e7f5248170 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding_index_tests-0.1.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.encoding_index_tests-0.1.4.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.equivalent-1.0.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.equivalent-1.0.2.bazel index f9bc520f0fee..b27eec3e1acc 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.equivalent-1.0.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.equivalent-1.0.2.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.figment-0.10.19.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.figment-0.10.19.bazel index d20df7a4ce67..d7587ad876cb 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.figment-0.10.19.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.figment-0.10.19.bazel @@ -87,6 +87,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.find-msvc-tools-0.1.12.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.find-msvc-tools-0.1.12.bazel index fb65dc12ff26..0fa51018e605 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.find-msvc-tools-0.1.12.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.find-msvc-tools-0.1.12.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fixedbitset-0.5.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fixedbitset-0.5.7.bazel index 938bb88d1db2..c2449e91c3db 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fixedbitset-0.5.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fixedbitset-0.5.7.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.flate2-1.1.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.flate2-1.1.9.bazel index dce37d0793cc..561edd0aaf02 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.flate2-1.1.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.flate2-1.1.9.bazel @@ -82,6 +82,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.foldhash-0.1.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.foldhash-0.1.5.bazel index b0e7bfca0090..f5fb0c95b311 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.foldhash-0.1.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.foldhash-0.1.5.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.foldhash-0.2.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.foldhash-0.2.0.bazel index 9f93a855be15..3cce27df7f0b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.foldhash-0.2.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.foldhash-0.2.0.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fs-err-3.3.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fs-err-3.3.0.bazel deleted file mode 100644 index 4e54c0df3877..000000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fs-err-3.3.0.bazel +++ /dev/null @@ -1,182 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -load( - "@rules_rust//cargo:defs.bzl", - "cargo_build_script", - "cargo_toml_env_vars", -) -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -cargo_toml_env_vars( - name = "cargo_toml_env_vars", - src = "Cargo.toml", -) - -rust_library( - name = "fs_err", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_root = "src/lib.rs", - edition = "2018", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=fs-err", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-macabi": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-none": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:loongarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:mips-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:sparc64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:sparc64-unknown-netbsd": [], - "@rules_rust//rust/platform:sparc64-unknown-openbsd": [], - "@rules_rust//rust/platform:thumbv6m-none-eabi": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv7em-none-eabihf": [], - "@rules_rust//rust/platform:thumbv7m-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabihf": [], - "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:wasm32-wasip1-threads": [], - "@rules_rust//rust/platform:wasm32-wasip2": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-apple-ios-macabi": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "3.3.0", - deps = [ - ":build_script_build", - ], -) - -cargo_build_script( - name = "_bs", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - build_script_env_files = [ - ":cargo_toml_env_vars", - ], - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - "**/*.rs", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_name = "build_script_build", - crate_root = "build.rs", - data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - edition = "2018", - emit_warnings = False, - pkg_name = "fs-err", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=fs-err", - "manual", - "noclippy", - "norustfmt", - ], - version = "3.3.0", - visibility = ["//visibility:private"], - deps = [ - "@vendor_ts__autocfg-1.5.1//:autocfg", - ], -) - -alias( - name = "build_script_build", - actual = ":_bs", - tags = ["manual"], -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fsevent-sys-4.1.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fsevent-sys-4.1.0.bazel index 87794962f650..8634bb1c5976 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fsevent-sys-4.1.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fsevent-sys-4.1.0.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fst-0.4.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fst-0.4.7.bazel index 2db05e8d8961..24a3312e0c75 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fst-0.4.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fst-0.4.7.bazel @@ -83,6 +83,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.futures-core-0.3.34.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.futures-core-0.3.34.bazel index 85a921ef7ff8..445ed8434c8a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.futures-core-0.3.34.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.futures-core-0.3.34.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.futures-task-0.3.34.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.futures-task-0.3.34.bazel index f960f96829fa..eeaeffa74a4f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.futures-task-0.3.34.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.futures-task-0.3.34.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.futures-util-0.3.34.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.futures-util-0.3.34.bazel index 83b6c5da7672..fb6225136bc4 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.futures-util-0.3.34.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.futures-util-0.3.34.bazel @@ -81,6 +81,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.getrandom-0.4.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.getrandom-0.4.3.bazel index 58c7d8f79752..c76fa3da0cc7 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.getrandom-0.4.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.getrandom-0.4.3.bazel @@ -84,6 +84,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.glob-0.3.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.glob-0.3.4.bazel index 3cfca3bda5b2..78f5d7eabe26 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.glob-0.3.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.glob-0.3.4.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.globset-0.4.18.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.globset-0.4.18.bazel index baf24845c2e5..210ccec89fe6 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.globset-0.4.18.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.globset-0.4.18.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.12.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.12.3.bazel index 411bf205e59f..61e09392a88e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.12.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.12.3.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.14.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.14.5.bazel index 7460d9c11147..ab62494e42b5 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.14.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.14.5.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.15.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.15.5.bazel index 0764b2faae8d..229875d1f585 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.15.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.15.5.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.17.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.17.1.bazel index 37b8ba4dfe41..325a8717ae7f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.17.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashbrown-0.17.1.bazel @@ -84,6 +84,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashlink-0.12.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashlink-0.12.1.bazel index a77ecd159951..4a3e80181bd0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashlink-0.12.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hashlink-0.12.1.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.heck-0.5.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.heck-0.5.0.bazel index a6e9298f1629..c7a45752f2b9 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.heck-0.5.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.heck-0.5.0.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hermit-abi-0.5.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hermit-abi-0.5.2.bazel index 5172dd0a1148..ee417cfe2923 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hermit-abi-0.5.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hermit-abi-0.5.2.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hex-0.4.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hex-0.4.3.bazel index 9351aa85fcaa..d0b43f01e73c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hex-0.4.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hex-0.4.3.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.iana-time-zone-0.1.65.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.iana-time-zone-0.1.65.bazel index 0fde039d9bce..d42d31e6d7f1 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.iana-time-zone-0.1.65.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.iana-time-zone-0.1.65.bazel @@ -79,6 +79,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.iana-time-zone-haiku-0.1.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.iana-time-zone-haiku-0.1.2.bazel index 560ed0fbe55f..bfcce6b02c07 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.iana-time-zone-haiku-0.1.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.iana-time-zone-haiku-0.1.2.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ident_case-1.0.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ident_case-1.0.1.bazel index dafffb18f245..770ac5e274a0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ident_case-1.0.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ident_case-1.0.1.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-1.9.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-1.9.3.bazel index 23dadea921df..faf4a2cbfc2a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-1.9.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-1.9.3.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-2.14.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-2.14.2.bazel index 7671e5481132..0ef88f07acd5 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-2.14.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.indexmap-2.14.2.bazel @@ -81,6 +81,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inlinable_string-0.1.15.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inlinable_string-0.1.15.bazel index a8b83e8f251c..42bdb1d1ea94 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inlinable_string-0.1.15.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inlinable_string-0.1.15.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-0.11.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-0.11.5.bazel index 6c681cc2972f..822309e10a1e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-0.11.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-0.11.5.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-sys-0.1.8.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-sys-0.1.8.bazel index e17e1cf2c57c..ce66bf4697ce 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-sys-0.1.8.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-sys-0.1.8.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.intrusive-collections-0.10.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.intrusive-collections-0.10.3.bazel index 3f7651684c43..5ffd8047cf8c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.intrusive-collections-0.10.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.intrusive-collections-0.10.3.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inventory-0.3.24.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inventory-0.3.24.bazel index 5c50f47a734a..1604efc8843d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inventory-0.3.24.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inventory-0.3.24.bazel @@ -94,6 +94,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.is_terminal_polyfill-1.70.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.is_terminal_polyfill-1.70.2.bazel index 169e5417e57c..28647bcddb12 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.is_terminal_polyfill-1.70.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.is_terminal_polyfill-1.70.2.bazel @@ -79,6 +79,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.itertools-0.15.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.itertools-0.15.0.bazel index 19bb1510456d..25a065273681 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.itertools-0.15.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.itertools-0.15.0.bazel @@ -81,6 +81,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.itoa-1.0.18.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.itoa-1.0.18.bazel index 62aa98ad9474..2e31d3416e16 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.itoa-1.0.18.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.itoa-1.0.18.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jiff-0.2.37.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jiff-0.2.37.bazel index fc234134cbcf..2261d90eea7d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jiff-0.2.37.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jiff-0.2.37.bazel @@ -79,6 +79,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jiff-core-0.1.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jiff-core-0.1.1.bazel index af06e1d11d3c..a936e3984f65 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jiff-core-0.1.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jiff-core-0.1.1.bazel @@ -82,6 +82,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jiff-static-0.2.37.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jiff-static-0.2.37.bazel index 3cdccea6a556..85ed83e8a7bc 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jiff-static-0.2.37.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jiff-static-0.2.37.bazel @@ -79,6 +79,7 @@ rust_proc_macro( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jiff-tzdb-0.1.8.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jiff-tzdb-0.1.8.bazel index 62168da113c5..61d90354df0a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jiff-tzdb-0.1.8.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jiff-tzdb-0.1.8.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jiff-tzdb-platform-0.1.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jiff-tzdb-platform-0.1.3.bazel index 7d1292b9132a..b80683752d65 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jiff-tzdb-platform-0.1.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jiff-tzdb-platform-0.1.3.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jobserver-0.1.35.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jobserver-0.1.35.bazel index 53ac9fcecba3..e872e35e75d6 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jobserver-0.1.35.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jobserver-0.1.35.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], @@ -174,6 +175,9 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ "@vendor_ts__libc-0.2.189//:libc", # cfg(unix) ], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [ + "@vendor_ts__libc-0.2.189//:libc", # cfg(unix) + ], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [ "@vendor_ts__libc-0.2.189//:libc", # cfg(unix) ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jod-thread-1.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jod-thread-1.0.0.bazel index d4e59686d3f0..68d72020f269 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jod-thread-1.0.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jod-thread-1.0.0.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.js-sys-0.3.103.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.js-sys-0.3.103.bazel index 22ce61014253..20b1136b7fdc 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.js-sys-0.3.103.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.js-sys-0.3.103.bazel @@ -81,6 +81,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-1.2.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-1.2.1.bazel index 81b6c877f8fd..27ea3fa9e689 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-1.2.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-1.2.1.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-sys-1.1.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-sys-1.1.2.bazel index 19baf88fd701..db1303bf6151 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-sys-1.1.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-sys-1.1.2.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.la-arena-0.3.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.la-arena-0.3.1.bazel index 155d0074a629..4cdba493eb02 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.la-arena-0.3.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.la-arena-0.3.1.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.lazy_static-1.5.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.lazy_static-1.5.1.bazel index 5eca4475d5d0..924e9f9bebdb 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.lazy_static-1.5.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.lazy_static-1.5.1.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libc-0.2.189.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libc-0.2.189.bazel index 0d57aff487fb..35e53c4cc1fc 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libc-0.2.189.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libc-0.2.189.bazel @@ -84,6 +84,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.line-index-0.1.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.line-index-0.1.2.bazel index de5a49f68d8d..be72d8afbb9b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.line-index-0.1.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.line-index-0.1.2.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.lock_api-0.4.14.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.lock_api-0.4.14.bazel index 789424bd7555..74a5e5e3a2ba 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.lock_api-0.4.14.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.lock_api-0.4.14.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.log-0.3.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.log-0.3.9.bazel index 5268ee66fdc4..57290190484b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.log-0.3.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.log-0.3.9.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.log-0.4.34.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.log-0.4.34.bazel index 1cf7c8ef7506..34db345d92d9 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.log-0.4.34.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.log-0.4.34.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.matchers-0.2.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.matchers-0.2.0.bazel index 2b2e8af7b7da..c877503707cd 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.matchers-0.2.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.matchers-0.2.0.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.memchr-2.8.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.memchr-2.8.3.bazel index e529b86c79df..a38c7e01d3b2 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.memchr-2.8.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.memchr-2.8.3.bazel @@ -81,6 +81,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.memoffset-0.9.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.memoffset-0.9.1.bazel index 3efe2fe7b160..c73bff82a637 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.memoffset-0.9.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.memoffset-0.9.1.bazel @@ -83,6 +83,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miniz_oxide-0.8.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miniz_oxide-0.8.9.bazel index e30643b033ef..f55a1fb1ab58 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miniz_oxide-0.8.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miniz_oxide-0.8.9.bazel @@ -81,6 +81,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.mio-1.2.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.mio-1.2.3.bazel index 267d8ffe2933..e356c2a05c49 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.mio-1.2.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.mio-1.2.3.bazel @@ -82,6 +82,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], @@ -182,6 +183,9 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ "@vendor_ts__libc-0.2.189//:libc", # cfg(any(unix, target_os = "hermit", target_os = "wasi")) ], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [ + "@vendor_ts__libc-0.2.189//:libc", # cfg(any(unix, target_os = "hermit", target_os = "wasi")) + ], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [ "@vendor_ts__libc-0.2.189//:libc", # cfg(any(unix, target_os = "hermit", target_os = "wasi")) ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miow-0.6.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miow-0.6.1.bazel index 8a20f0eed2ed..28a3ed8de154 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miow-0.6.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.miow-0.6.1.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.mustache-0.9.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.mustache-0.9.0.bazel index e69c92e66a2a..0d3a0189083f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.mustache-0.9.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.mustache-0.9.0.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.nohash-hasher-0.2.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.nohash-hasher-0.2.0.bazel index 7eb78d9b39ee..27c83ecc9202 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.nohash-hasher-0.2.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.nohash-hasher-0.2.0.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.notify-8.2.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.notify-8.2.0.bazel index c2604d7f7164..191e88cdf858 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.notify-8.2.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.notify-8.2.0.bazel @@ -81,6 +81,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.notify-types-2.1.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.notify-types-2.1.0.bazel index 324845dffc54..12ebcc06828d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.notify-types-2.1.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.notify-types-2.1.0.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.nu-ansi-term-0.50.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.nu-ansi-term-0.50.3.bazel index e2c4edbd915b..b4a8fdace476 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.nu-ansi-term-0.50.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.nu-ansi-term-0.50.3.bazel @@ -92,6 +92,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num-conv-0.2.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num-conv-0.2.2.bazel index b19b527ba6cf..03632f0fb2b1 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num-conv-0.2.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num-conv-0.2.2.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num-traits-0.2.19.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num-traits-0.2.19.bazel index e27be7a1d7f8..51f0bbe45773 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num-traits-0.2.19.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num-traits-0.2.19.bazel @@ -84,6 +84,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num_cpus-1.17.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num_cpus-1.17.0.bazel index fd004595ba14..20c627687939 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num_cpus-1.17.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num_cpus-1.17.0.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], @@ -180,6 +181,9 @@ rust_library( "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [ "@vendor_ts__libc-0.2.189//:libc", # cfg(not(windows)) ], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [ + "@vendor_ts__libc-0.2.189//:libc", # cfg(not(windows)) + ], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [ "@vendor_ts__libc-0.2.189//:libc", # cfg(not(windows)) ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num_threads-0.1.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num_threads-0.1.7.bazel index 04548b48fd50..10e74e9406a0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num_threads-0.1.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num_threads-0.1.7.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.once_cell-1.21.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.once_cell-1.21.4.bazel index 3e369cc74815..047adef58f3f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.once_cell-1.21.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.once_cell-1.21.4.bazel @@ -82,6 +82,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.once_cell_polyfill-1.70.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.once_cell_polyfill-1.70.2.bazel index 49ca9aa2e4c2..66335b9ae297 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.once_cell_polyfill-1.70.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.once_cell_polyfill-1.70.2.bazel @@ -79,6 +79,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.oorandom-11.1.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.oorandom-11.1.5.bazel index 15f5f42e4634..b4b5dd2dfebd 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.oorandom-11.1.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.oorandom-11.1.5.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.os_str_bytes-7.2.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.os_str_bytes-7.2.0.bazel deleted file mode 100644 index c2a1a09be7ac..000000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.os_str_bytes-7.2.0.bazel +++ /dev/null @@ -1,118 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -load("@rules_rust//cargo:defs.bzl", "cargo_toml_env_vars") -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -cargo_toml_env_vars( - name = "cargo_toml_env_vars", - src = "Cargo.toml", -) - -rust_library( - name = "os_str_bytes", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_features = [ - "default", - "memchr", - "raw_os_str", - ], - crate_root = "src/lib.rs", - edition = "2021", - rustc_env_files = [ - ":cargo_toml_env_vars", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=os_str_bytes", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-macabi": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-none": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:loongarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:mips-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:sparc64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:sparc64-unknown-netbsd": [], - "@rules_rust//rust/platform:sparc64-unknown-openbsd": [], - "@rules_rust//rust/platform:thumbv6m-none-eabi": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv7em-none-eabihf": [], - "@rules_rust//rust/platform:thumbv7m-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabihf": [], - "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:wasm32-wasip1-threads": [], - "@rules_rust//rust/platform:wasm32-wasip2": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-apple-ios-macabi": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "7.2.0", - deps = [ - "@vendor_ts__memchr-2.8.3//:memchr", - ], -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.parking_lot-0.12.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.parking_lot-0.12.5.bazel index 888609b9c78f..8de33bedb62b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.parking_lot-0.12.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.parking_lot-0.12.5.bazel @@ -79,6 +79,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.parking_lot_core-0.9.12.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.parking_lot_core-0.9.12.bazel index 8cf0d70d05ef..be0500fc5bc9 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.parking_lot_core-0.9.12.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.parking_lot_core-0.9.12.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], @@ -182,6 +183,9 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ "@vendor_ts__libc-0.2.189//:libc", # cfg(unix) ], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [ + "@vendor_ts__libc-0.2.189//:libc", # cfg(unix) + ], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [ "@vendor_ts__libc-0.2.189//:libc", # cfg(unix) ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pear-0.2.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pear-0.2.9.bazel index 00e55aa2c328..7b28f1c5a61d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pear-0.2.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pear-0.2.9.bazel @@ -84,6 +84,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pear_codegen-0.2.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pear_codegen-0.2.9.bazel index dd097afb8bab..a58caad84f9d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pear_codegen-0.2.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pear_codegen-0.2.9.bazel @@ -76,6 +76,7 @@ rust_proc_macro( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-0.4.8.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-0.4.8.bazel index 366e209d47cb..865a3b35a227 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-0.4.8.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-0.4.8.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-open-sys-4.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-open-sys-4.0.0.bazel index 0ff8a5b6a0af..db745c0fcff3 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-open-sys-4.0.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-open-sys-4.0.0.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.petgraph-0.8.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.petgraph-0.8.3.bazel index 58a22abcb579..43c76a33a8bb 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.petgraph-0.8.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.petgraph-0.8.3.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pin-project-lite-0.2.17.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pin-project-lite-0.2.17.bazel index 9042ddad2f0f..807403395d70 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pin-project-lite-0.2.17.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pin-project-lite-0.2.17.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pkg-config-0.3.34.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pkg-config-0.3.34.bazel index 809f1028635a..e804786a0a81 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pkg-config-0.3.34.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pkg-config-0.3.34.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.portable-atomic-1.15.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.portable-atomic-1.15.0.bazel index 50dfb49caa45..61c8da82b6a0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.portable-atomic-1.15.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.portable-atomic-1.15.0.bazel @@ -84,6 +84,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.portable-atomic-util-0.2.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.portable-atomic-util-0.2.7.bazel index a9cfe5ef2e95..f6932bfe0c52 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.portable-atomic-util-0.2.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.portable-atomic-util-0.2.7.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.postcard-1.1.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.postcard-1.1.3.bazel index ed698b8d764f..3dcb2b442489 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.postcard-1.1.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.postcard-1.1.3.bazel @@ -79,6 +79,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.powerfmt-0.2.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.powerfmt-0.2.0.bazel index 2ad27d505a89..1013a7b9d154 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.powerfmt-0.2.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.powerfmt-0.2.0.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-1.0.107.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-1.0.107.bazel index 23a5bc388ef4..c3092d17e1b5 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-1.0.107.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-1.0.107.bazel @@ -84,6 +84,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-diagnostics-0.10.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-diagnostics-0.10.1.bazel index c5bce52442a3..41d7d223dcf9 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-diagnostics-0.10.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-diagnostics-0.10.1.bazel @@ -85,6 +85,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.quote-1.0.47.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.quote-1.0.47.bazel index b590a4e2a41c..023e519e589f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.quote-1.0.47.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.quote-1.0.47.bazel @@ -84,6 +84,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.r-efi-6.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.r-efi-6.0.0.bazel index aa2827ae07d7..c54aa50642ef 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.r-efi-6.0.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.r-efi-6.0.0.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_abi-0.166.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_abi-0.166.0.bazel index e5ffa40e334e..fae4969b2eeb 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_abi-0.166.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_abi-0.166.0.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_ast_ir-0.166.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_ast_ir-0.166.0.bazel index fde84c2464d0..73996835548e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_ast_ir-0.166.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_ast_ir-0.166.0.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_hashes-0.166.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_hashes-0.166.0.bazel index 9ad0414dcc7e..04517cb7a77c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_hashes-0.166.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_hashes-0.166.0.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index-0.166.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index-0.166.0.bazel index 37e1346cecbc..055cc9ee4ef7 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index-0.166.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index-0.166.0.bazel @@ -82,6 +82,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index_macros-0.166.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index_macros-0.166.0.bazel index fcf203517134..8422321314e8 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index_macros-0.166.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index_macros-0.166.0.bazel @@ -76,6 +76,7 @@ rust_proc_macro( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_lexer-0.166.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_lexer-0.166.0.bazel index ac52299aef40..e5311d5f6f1f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_lexer-0.166.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_lexer-0.166.0.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_next_trait_solver-0.166.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_next_trait_solver-0.166.0.bazel index a96b09799a04..2de07b89a3ba 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_next_trait_solver-0.166.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_next_trait_solver-0.166.0.bazel @@ -85,6 +85,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_parse_format-0.166.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_parse_format-0.166.0.bazel index 3a70744bbf1b..f77643fc2192 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_parse_format-0.166.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_parse_format-0.166.0.bazel @@ -79,6 +79,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_pattern_analysis-0.166.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_pattern_analysis-0.166.0.bazel index 855b074a8f33..1fe3c0b1972c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_pattern_analysis-0.166.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_pattern_analysis-0.166.0.bazel @@ -79,6 +79,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_type_ir-0.166.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_type_ir-0.166.0.bazel index 3cd235d5fb7f..cea34a4a5d61 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_type_ir-0.166.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_type_ir-0.166.0.bazel @@ -86,6 +86,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_type_ir_macros-0.166.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_type_ir_macros-0.166.0.bazel index d613a9685a4c..98d73e9a8506 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_type_ir_macros-0.166.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_type_ir_macros-0.166.0.bazel @@ -76,6 +76,7 @@ rust_proc_macro( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_base_db-0.0.358.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_base_db-0.0.358.bazel index 76b42cb0446c..13bf573c6df0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_base_db-0.0.358.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_base_db-0.0.358.bazel @@ -86,6 +86,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_cfg-0.0.358.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_cfg-0.0.358.bazel index 0a316bf76e5a..876d550c864c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_cfg-0.0.358.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_cfg-0.0.358.bazel @@ -86,6 +86,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_edition-0.0.358.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_edition-0.0.358.bazel index 688f2e1bd887..c248177801f3 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_edition-0.0.358.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_edition-0.0.358.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir-0.0.358.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir-0.0.358.bazel index a9a195ede6ba..957fb30602d5 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir-0.0.358.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir-0.0.358.bazel @@ -88,6 +88,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_def-0.0.358.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_def-0.0.358.bazel index b1e1ad7ff5fa..8c67a6292383 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_def-0.0.358.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_def-0.0.358.bazel @@ -87,6 +87,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_expand-0.0.358.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_expand-0.0.358.bazel index 1c0c1097719b..e9fac9c13d8a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_expand-0.0.358.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_expand-0.0.358.bazel @@ -88,6 +88,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_ty-0.0.358.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_ty-0.0.358.bazel index 2cc6a6fa9cbe..0d4432043557 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_ty-0.0.358.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_ty-0.0.358.bazel @@ -90,6 +90,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_ide_db-0.0.358.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_ide_db-0.0.358.bazel index da9a29150d5a..146010851f1a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_ide_db-0.0.358.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_ide_db-0.0.358.bazel @@ -95,6 +95,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_intern-0.0.358.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_intern-0.0.358.bazel index 88a73d1a3a94..ebb3b1e3d789 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_intern-0.0.358.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_intern-0.0.358.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_load-cargo-0.0.358.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_load-cargo-0.0.358.bazel index 464b33c3e5e7..5c706830a4c6 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_load-cargo-0.0.358.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_load-cargo-0.0.358.bazel @@ -87,6 +87,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_macros-0.0.358.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_macros-0.0.358.bazel index 34e4e9646d9a..dd4bf47183a7 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_macros-0.0.358.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_macros-0.0.358.bazel @@ -76,6 +76,7 @@ rust_proc_macro( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_mbe-0.0.358.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_mbe-0.0.358.bazel index cf306b7cbde4..4dad10228692 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_mbe-0.0.358.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_mbe-0.0.358.bazel @@ -84,6 +84,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_parser-0.0.358.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_parser-0.0.358.bazel index c6191c4459a8..7939864da411 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_parser-0.0.358.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_parser-0.0.358.bazel @@ -82,6 +82,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_paths-0.0.358.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_paths-0.0.358.bazel index 16de48a883a3..a889589d6def 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_paths-0.0.358.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_paths-0.0.358.bazel @@ -79,6 +79,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_proc_macro_api-0.0.358.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_proc_macro_api-0.0.358.bazel index b0468a3c3bc2..297cce48499b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_proc_macro_api-0.0.358.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_proc_macro_api-0.0.358.bazel @@ -89,6 +89,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_profile-0.0.358.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_profile-0.0.358.bazel index 8694b052b731..f188b99f623a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_profile-0.0.358.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_profile-0.0.358.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_project_model-0.0.358.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_project_model-0.0.358.bazel index 2efd809e8ab6..e719e4c05330 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_project_model-0.0.358.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_project_model-0.0.358.bazel @@ -91,6 +91,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_span-0.0.358.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_span-0.0.358.bazel index f11103be3f7e..0f8fcc8ba492 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_span-0.0.358.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_span-0.0.358.bazel @@ -85,6 +85,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_stdx-0.0.358.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_stdx-0.0.358.bazel index 358e4b22d30c..b58a65cb9a08 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_stdx-0.0.358.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_stdx-0.0.358.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], @@ -182,6 +183,9 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ "@vendor_ts__libc-0.2.189//:libc", # cfg(unix) ], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [ + "@vendor_ts__libc-0.2.189//:libc", # cfg(unix) + ], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [ "@vendor_ts__libc-0.2.189//:libc", # cfg(unix) ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-0.0.358.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-0.0.358.bazel index bf728bf5e72b..877cda956c98 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-0.0.358.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-0.0.358.bazel @@ -83,6 +83,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-bridge-0.0.358.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-bridge-0.0.358.bazel index 8bc88c5b7a11..c08fa8bf8d02 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-bridge-0.0.358.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-bridge-0.0.358.bazel @@ -84,6 +84,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_test_fixture-0.0.358.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_test_fixture-0.0.358.bazel index 683c9d452e6d..14ed4c4ca7ce 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_test_fixture-0.0.358.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_test_fixture-0.0.358.bazel @@ -90,6 +90,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_test_utils-0.0.358.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_test_utils-0.0.358.bazel index 391659fa0605..d3aecef42996 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_test_utils-0.0.358.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_test_utils-0.0.358.bazel @@ -81,6 +81,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_toolchain-0.0.358.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_toolchain-0.0.358.bazel index 93779397c615..e1cba866558c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_toolchain-0.0.358.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_toolchain-0.0.358.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_tt-0.0.358.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_tt-0.0.358.bazel index 5e851569c6f3..943afa2c67e0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_tt-0.0.358.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_tt-0.0.358.bazel @@ -81,6 +81,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-0.0.358.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-0.0.358.bazel index c8ab3d0cc554..d27a35d12c30 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-0.0.358.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-0.0.358.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-notify-0.0.358.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-notify-0.0.358.bazel index b51cbb2b7154..e560b480a75f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-notify-0.0.358.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-notify-0.0.358.bazel @@ -81,6 +81,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rand-0.10.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rand-0.10.3.bazel index 022df2ef9995..2bf175ab21f5 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rand-0.10.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rand-0.10.3.bazel @@ -84,6 +84,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rand_core-0.10.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rand_core-0.10.1.bazel index 0673f7a86741..ab4f39373fa0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rand_core-0.10.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rand_core-0.10.1.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-1.12.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-1.12.0.bazel index 4773d5fb78e1..a0da12a70abc 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-1.12.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-1.12.0.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-core-1.13.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-core-1.13.0.bazel index e16e20fc7898..69949736422b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-core-1.13.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rayon-core-1.13.0.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.redox_syscall-0.5.18.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.redox_syscall-0.5.18.bazel index 128455980fef..c5f6187dd6e9 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.redox_syscall-0.5.18.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.redox_syscall-0.5.18.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ref-cast-1.0.26.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ref-cast-1.0.26.bazel index 47ee7710c1ad..22041bab17ea 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ref-cast-1.0.26.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ref-cast-1.0.26.bazel @@ -83,6 +83,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ref-cast-impl-1.0.26.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ref-cast-impl-1.0.26.bazel index 3eeb297a8631..0188c1ca52e4 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ref-cast-impl-1.0.26.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ref-cast-impl-1.0.26.bazel @@ -76,6 +76,7 @@ rust_proc_macro( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-1.13.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-1.13.1.bazel index cd6a68b1a521..1606766a09e9 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-1.13.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-1.13.1.bazel @@ -95,6 +95,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-automata-0.4.18.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-automata-0.4.18.bazel index be8cac10495b..2ede58def494 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-automata-0.4.18.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-automata-0.4.18.bazel @@ -104,6 +104,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-syntax-0.8.11.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-syntax-0.8.11.bazel index 807d55bc267b..efbbec5bc01c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-syntax-0.8.11.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-syntax-0.8.11.bazel @@ -88,6 +88,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rowan-0.17.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rowan-0.17.0.bazel index 42faf7d0eb79..b69da541f8c6 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rowan-0.17.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rowan-0.17.0.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-hash-1.1.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-hash-1.1.0.bazel index a4da983b87eb..5494c11f99dc 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-hash-1.1.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-hash-1.1.0.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-hash-2.1.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-hash-2.1.3.bazel index 92003c5bf12b..378015edccf1 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-hash-2.1.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-hash-2.1.3.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-literal-escaper-0.0.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-literal-escaper-0.0.7.bazel index b62771f52d73..5988f46c20ee 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-literal-escaper-0.0.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-literal-escaper-0.0.7.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-stable-hash-0.1.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-stable-hash-0.1.2.bazel index 4566de291a11..ecee3c545b73 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-stable-hash-0.1.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-stable-hash-0.1.2.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc_apfloat-0.2.3+llvm-462a31f5a5ab.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc_apfloat-0.2.3+llvm-462a31f5a5ab.bazel index da5e224b62e7..35f52ea1c617 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc_apfloat-0.2.3+llvm-462a31f5a5ab.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc_apfloat-0.2.3+llvm-462a31f5a5ab.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustversion-1.0.23.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustversion-1.0.23.bazel index 11fd98830b5f..57a22a4437a5 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustversion-1.0.23.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustversion-1.0.23.bazel @@ -80,6 +80,7 @@ rust_proc_macro( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ryu-1.0.23.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ryu-1.0.23.bazel index ac0396f8d06c..2bcb69c9e5ee 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ryu-1.0.23.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ryu-1.0.23.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-0.28.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-0.28.5.bazel index ea949199d9f9..060fa5375bab 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-0.28.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-0.28.5.bazel @@ -86,6 +86,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macro-rules-0.28.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macro-rules-0.28.5.bazel index 9c4ab7d45c66..95431e6bb612 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macro-rules-0.28.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macro-rules-0.28.5.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macros-0.28.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macros-0.28.5.bazel index cc17c827a674..c9245e7bdf1d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macros-0.28.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macros-0.28.5.bazel @@ -79,6 +79,7 @@ rust_proc_macro( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.same-file-1.0.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.same-file-1.0.6.bazel index d791c3bf735d..e0b9957e4d90 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.same-file-1.0.6.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.same-file-1.0.6.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-0.9.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-0.9.0.bazel index f094d52a5114..b63d1f69f370 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-0.9.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-0.9.0.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-1.2.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-1.2.2.bazel index 8346a5cbc9b8..fae6717e0db4 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-1.2.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-1.2.2.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.scopeguard-1.2.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.scopeguard-1.2.0.bazel index 314323540722..ff559c5d5732 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.scopeguard-1.2.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.scopeguard-1.2.0.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.semver-1.0.28.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.semver-1.0.28.bazel index d12baecdfea7..99f3f9859eff 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.semver-1.0.28.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.semver-1.0.28.bazel @@ -84,6 +84,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-1.0.229.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-1.0.229.bazel index 4c9dcee67365..2220c221cb00 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-1.0.229.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-1.0.229.bazel @@ -90,6 +90,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_core-1.0.229.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_core-1.0.229.bazel index b81bf62830ed..77c22a839fe1 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_core-1.0.229.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_core-1.0.229.bazel @@ -86,6 +86,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_derive-1.0.229.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_derive-1.0.229.bazel index 1319ffcebfde..dae15b8c4e9e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_derive-1.0.229.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_derive-1.0.229.bazel @@ -79,6 +79,7 @@ rust_proc_macro( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_json-1.0.154.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_json-1.0.154.bazel index 9bb95ff10c07..f2da5b9d499f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_json-1.0.154.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_json-1.0.154.bazel @@ -167,6 +167,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_spanned-1.1.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_spanned-1.1.2.bazel index e54c5ed60375..9d4e88482b26 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_spanned-1.1.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_spanned-1.1.2.bazel @@ -81,6 +81,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with-3.24.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with-3.24.0.bazel index 7e43c9d34a35..58dda0cfa3a2 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with-3.24.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with-3.24.0.bazel @@ -85,6 +85,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with_macros-3.24.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with_macros-3.24.0.bazel index 76e88beca6b7..0e61403140cc 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with_macros-3.24.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with_macros-3.24.0.bazel @@ -76,6 +76,7 @@ rust_proc_macro( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_yaml-0.9.34+deprecated.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_yaml-0.9.34+deprecated.bazel index cc21cf0e7d96..389ed80cdf6d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_yaml-0.9.34+deprecated.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_yaml-0.9.34+deprecated.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.sharded-slab-0.1.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.sharded-slab-0.1.7.bazel index f59925e6b776..79e330f02c6f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.sharded-slab-0.1.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.sharded-slab-0.1.7.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.shlex-2.0.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.shlex-2.0.1.bazel index ac9f97395ab6..bea3634108c8 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.shlex-2.0.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.shlex-2.0.1.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.simd-adler32-0.3.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.simd-adler32-0.3.9.bazel index 8e12154dc9f9..14aff999aed9 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.simd-adler32-0.3.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.simd-adler32-0.3.9.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.slab-0.4.12.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.slab-0.4.12.bazel index af5ae4a3fe8e..5ed0ffdc88d2 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.slab-0.4.12.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.slab-0.4.12.bazel @@ -79,6 +79,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.smallvec-1.16.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.smallvec-1.16.1.bazel index 7b4d4b028e48..a9c032f5e256 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.smallvec-1.16.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.smallvec-1.16.1.bazel @@ -81,6 +81,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.smol_str-0.3.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.smol_str-0.3.6.bazel index c9fcf5e5ff53..593ebef66f05 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.smol_str-0.3.6.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.smol_str-0.3.6.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.stable_deref_trait-1.2.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.stable_deref_trait-1.2.1.bazel index 2fa4b496c3ca..7cb24c5d60aa 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.stable_deref_trait-1.2.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.stable_deref_trait-1.2.1.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.streaming-iterator-0.1.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.streaming-iterator-0.1.9.bazel index ee1a1fcd2660..1f0a245f1e20 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.streaming-iterator-0.1.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.streaming-iterator-0.1.9.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.strsim-0.11.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.strsim-0.11.1.bazel index 1718b3d371e4..b190d4b87cf1 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.strsim-0.11.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.strsim-0.11.1.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.syn-2.0.119.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.syn-2.0.119.bazel index 4ca3954e7290..f5e0f0a7ec87 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.syn-2.0.119.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.syn-2.0.119.bazel @@ -88,6 +88,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.syn-3.0.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.syn-3.0.9.bazel index f7028c30ac0a..1f354fa72b62 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.syn-3.0.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.syn-3.0.9.bazel @@ -88,6 +88,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.synstructure-0.13.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.synstructure-0.13.2.bazel index bfc20a0fe8ce..be3992f7ccfa 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.synstructure-0.13.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.synstructure-0.13.2.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.text-size-1.1.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.text-size-1.1.1.bazel index 6f49c67c7850..f2e388606b76 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.text-size-1.1.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.text-size-1.1.1.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thin-vec-0.2.19.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thin-vec-0.2.19.bazel index fb194d026295..de2c84e7302b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thin-vec-0.2.19.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thin-vec-0.2.19.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-2.0.20.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-2.0.20.bazel index 8394fdcae309..e093791a02e9 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-2.0.20.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-2.0.20.bazel @@ -87,6 +87,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-2.0.20.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-2.0.20.bazel index 39840c908369..20cc61c7e5ed 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-2.0.20.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-2.0.20.bazel @@ -76,6 +76,7 @@ rust_proc_macro( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thread_local-1.1.10.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thread_local-1.1.10.bazel index c1c1ef3d1a33..1fc17eecf9a7 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thread_local-1.1.10.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thread_local-1.1.10.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-0.3.55.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-0.3.55.bazel index faf29bcb510b..bf34b09e3da5 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-0.3.55.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-0.3.55.bazel @@ -83,6 +83,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], @@ -200,6 +201,10 @@ rust_library( "@vendor_ts__libc-0.2.189//:libc", # powerpc-unknown-linux-gnu "@vendor_ts__num_threads-0.1.7//:num_threads", # powerpc-unknown-linux-gnu ], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [ + "@vendor_ts__libc-0.2.189//:libc", # riscv64gc-unknown-fuchsia + "@vendor_ts__num_threads-0.1.7//:num_threads", # riscv64gc-unknown-fuchsia + ], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [ "@vendor_ts__libc-0.2.189//:libc", # riscv64gc-unknown-linux-gnu "@vendor_ts__num_threads-0.1.7//:num_threads", # riscv64gc-unknown-linux-gnu diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-core-0.1.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-core-0.1.9.bazel index 45f2b038de8f..d370410ee040 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-core-0.1.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-core-0.1.9.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-macros-0.2.32.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-macros-0.2.32.bazel index c4ec5a92c262..76521c772978 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-macros-0.2.32.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.time-macros-0.2.32.bazel @@ -76,6 +76,7 @@ rust_proc_macro( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tinyvec-1.13.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tinyvec-1.13.3.bazel index 99890f01d0d1..fe2861891787 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tinyvec-1.13.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tinyvec-1.13.3.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml-1.1.8+spec-1.1.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml-1.1.8+spec-1.1.0.bazel index d1024a155c35..9a121614fdf6 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml-1.1.8+spec-1.1.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml-1.1.8+spec-1.1.0.bazel @@ -83,6 +83,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_datetime-1.1.2+spec-1.1.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_datetime-1.1.2+spec-1.1.0.bazel index 65d33bf3881f..be80b5f33721 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_datetime-1.1.2+spec-1.1.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_datetime-1.1.2+spec-1.1.0.bazel @@ -81,6 +81,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_parser-1.1.5+spec-1.1.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_parser-1.1.5+spec-1.1.0.bazel index 28131b3e3331..617dce2d6be6 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_parser-1.1.5+spec-1.1.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_parser-1.1.5+spec-1.1.0.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_writer-1.1.3+spec-1.1.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_writer-1.1.3+spec-1.1.0.bazel index 22da9baf7e0e..a3ec93c688ac 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_writer-1.1.3+spec-1.1.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_writer-1.1.3+spec-1.1.0.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-0.1.44.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-0.1.44.bazel index c095e8935653..ece67ce59d90 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-0.1.44.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-0.1.44.bazel @@ -85,6 +85,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-attributes-0.1.31.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-attributes-0.1.31.bazel index 2748c0113aa1..5492d72cbf3c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-attributes-0.1.31.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-attributes-0.1.31.bazel @@ -76,6 +76,7 @@ rust_proc_macro( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-core-0.1.36.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-core-0.1.36.bazel index 923dbf8d5da2..6b3918366163 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-core-0.1.36.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-core-0.1.36.bazel @@ -81,6 +81,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-flame-0.2.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-flame-0.2.0.bazel index 3dbeee28c51c..0e6854943c45 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-flame-0.2.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-flame-0.2.0.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-log-0.2.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-log-0.2.0.bazel index 1ffd0bce17b4..19253c5027bf 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-log-0.2.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-log-0.2.0.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-subscriber-0.3.23.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-subscriber-0.3.23.bazel index d5e85ae2bb1a..d4a774010a0a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-subscriber-0.3.23.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-subscriber-0.3.23.bazel @@ -95,6 +95,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-tree-0.4.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-tree-0.4.1.bazel index ba9dcc5d3c8f..947115d28467 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-tree-0.4.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-tree-0.4.1.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-0.26.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-0.26.9.bazel index 5684d9c0ea7f..4aa778674503 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-0.26.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-0.26.9.bazel @@ -84,6 +84,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-embedded-template-0.25.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-embedded-template-0.25.0.bazel index 213a74ecdbcf..2d0165a2704b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-embedded-template-0.25.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-embedded-template-0.25.0.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-json-0.24.8.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-json-0.24.8.bazel index efd31005bc78..48d231edb66b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-json-0.24.8.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-json-0.24.8.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-language-0.1.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-language-0.1.7.bazel index c17572232ce5..05c885e79e33 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-language-0.1.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-language-0.1.7.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-python-0.25.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-python-0.25.0.bazel index a7728612d8d0..fc0b81db0b9f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-python-0.25.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-python-0.25.0.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-ql-0.23.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-ql-0.23.1.bazel index 0f54a2f11f12..8da26e26062e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-ql-0.23.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-ql-0.23.1.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-ruby-0.23.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-ruby-0.23.1.bazel index d5efc2ea2f88..11361f8187e8 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-ruby-0.23.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tree-sitter-ruby-0.23.1.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.triomphe-0.1.17.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.triomphe-0.1.17.bazel index ed1ed0302ac3..e0e8340be9a8 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.triomphe-0.1.17.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.triomphe-0.1.17.bazel @@ -82,6 +82,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.typed-arena-2.0.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.typed-arena-2.0.2.bazel index a84180a35e64..5ac61a32e29a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.typed-arena-2.0.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.typed-arena-2.0.2.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.typeid-1.0.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.typeid-1.0.3.bazel index 24674e33d16e..624ed06a5020 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.typeid-1.0.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.typeid-1.0.3.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.uncased-0.9.10.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.uncased-0.9.10.bazel index dc1c2ecb2dbf..7f0f8dceb676 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.uncased-0.9.10.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.uncased-0.9.10.bazel @@ -84,6 +84,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ungrammar-1.16.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ungrammar-1.16.1.bazel index a43ecf56481d..cf77a6b9e3f6 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ungrammar-1.16.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ungrammar-1.16.1.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-ident-1.0.24.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-ident-1.0.24.bazel index 156ea023f2bb..d58603f3d061 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-ident-1.0.24.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-ident-1.0.24.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-properties-0.1.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-properties-0.1.4.bazel index ff90d09a87ad..6919d16178db 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-properties-0.1.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unicode-properties-0.1.4.bazel @@ -79,6 +79,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unsafe-libyaml-0.2.11.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unsafe-libyaml-0.2.11.bazel index 8a9e69f08ffe..29f5365ccb0a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unsafe-libyaml-0.2.11.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.unsafe-libyaml-0.2.11.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.utf8parse-0.2.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.utf8parse-0.2.2.bazel index e4bea8821f83..02c3a6cd642c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.utf8parse-0.2.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.utf8parse-0.2.2.bazel @@ -79,6 +79,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.valuable-0.1.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.valuable-0.1.1.bazel index c8269757c43a..6c39ef5040f0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.valuable-0.1.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.valuable-0.1.1.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.version_check-0.9.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.version_check-0.9.5.bazel index b0e1a04c6011..53f8adea521b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.version_check-0.9.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.version_check-0.9.5.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.walkdir-2.5.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.walkdir-2.5.0.bazel index dd9c7fd01f3c..f06e6079fcd4 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.walkdir-2.5.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.walkdir-2.5.0.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasi-0.11.1+wasi-snapshot-preview1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasi-0.11.1+wasi-snapshot-preview1.bazel index 8aa6a072254c..f7e58c23dc21 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasi-0.11.1+wasi-snapshot-preview1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasi-0.11.1+wasi-snapshot-preview1.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-0.2.126.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-0.2.126.bazel index 0c120808f80c..5196e83bfea5 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-0.2.126.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-0.2.126.bazel @@ -87,6 +87,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-0.2.126.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-0.2.126.bazel index 2b6101c82ca1..df70de65c444 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-0.2.126.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-0.2.126.bazel @@ -76,6 +76,7 @@ rust_proc_macro( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-support-0.2.126.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-support-0.2.126.bazel index b51cf891efa6..7c52a0e5bf5b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-support-0.2.126.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-support-0.2.126.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-shared-0.2.126.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-shared-0.2.126.bazel index a633f2d5e6c9..ef1f6b611b91 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-shared-0.2.126.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-shared-0.2.126.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winapi-util-0.1.11.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winapi-util-0.1.11.bazel index 298ea60ff1e7..aa22ba8aa845 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winapi-util-0.1.11.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winapi-util-0.1.11.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-core-0.62.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-core-0.62.2.bazel index 17e2d838c615..9c25dbc2cf07 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-core-0.62.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-core-0.62.2.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-implement-0.60.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-implement-0.60.2.bazel index 2ed36393d79e..f56579bb8914 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-implement-0.60.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-implement-0.60.2.bazel @@ -76,6 +76,7 @@ rust_proc_macro( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-interface-0.59.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-interface-0.59.3.bazel index d44b24b062f4..15a70be5f9e0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-interface-0.59.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-interface-0.59.3.bazel @@ -76,6 +76,7 @@ rust_proc_macro( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-link-0.2.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-link-0.2.1.bazel index d9820e054ca8..fb7f1fbd19f0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-link-0.2.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-link-0.2.1.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-result-0.4.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-result-0.4.1.bazel index 78cc7bef0082..0a7a13911845 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-result-0.4.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-result-0.4.1.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-strings-0.5.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-strings-0.5.1.bazel index d2f956cd3e2d..489d1f4df56d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-strings-0.5.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-strings-0.5.1.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.60.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.60.2.bazel index ff04d942acdd..57adfbaf7396 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.60.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.60.2.bazel @@ -88,6 +88,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.61.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.61.2.bazel index 6a445c10167c..33701268ca7f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.61.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.61.2.bazel @@ -93,6 +93,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-targets-0.53.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-targets-0.53.5.bazel index d7b4970cffab..ddb43af5038a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-targets-0.53.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-targets-0.53.5.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_gnullvm-0.53.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_gnullvm-0.53.1.bazel index 94b7355bbf5a..02c278ced29f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_gnullvm-0.53.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_gnullvm-0.53.1.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_msvc-0.53.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_msvc-0.53.1.bazel index 8d415c67fdc7..946a0f928d57 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_msvc-0.53.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_msvc-0.53.1.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnu-0.53.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnu-0.53.1.bazel index 334c94008465..2d7d004f36bc 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnu-0.53.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnu-0.53.1.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnullvm-0.53.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnullvm-0.53.1.bazel index 3e293a270a44..25d3f685a265 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnullvm-0.53.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnullvm-0.53.1.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_msvc-0.53.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_msvc-0.53.1.bazel index fbc31563fded..97e63f090732 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_msvc-0.53.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_msvc-0.53.1.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnu-0.53.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnu-0.53.1.bazel index 2e913006d6f3..e3bf7fcabf28 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnu-0.53.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnu-0.53.1.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnullvm-0.53.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnullvm-0.53.1.bazel index 522c970e1720..89147d16e842 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnullvm-0.53.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnullvm-0.53.1.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_msvc-0.53.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_msvc-0.53.1.bazel index b042b97d0deb..3acc471f4e47 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_msvc-0.53.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_msvc-0.53.1.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winnow-0.7.13.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winnow-0.7.13.bazel index 1fc2ac90b854..77104b8c7a76 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winnow-0.7.13.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winnow-0.7.13.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winnow-1.0.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winnow-1.0.4.bazel index fd703b0f1925..bb9365849004 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winnow-1.0.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winnow-1.0.4.bazel @@ -76,6 +76,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yansi-1.0.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yansi-1.0.1.bazel index 0e2ac09574d9..7413db1aac9b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yansi-1.0.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yansi-1.0.1.bazel @@ -81,6 +81,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zmij-1.0.23.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zmij-1.0.23.bazel index 6120db5840f5..f63a34bcf541 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zmij-1.0.23.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zmij-1.0.23.bazel @@ -80,6 +80,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-0.14.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-0.14.2.bazel index a7963ef8ca6c..bfb375070baf 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-0.14.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-0.14.2.bazel @@ -82,6 +82,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-safe-8.1.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-safe-8.1.0.bazel index 97f7ca601d68..cfbb2587d828 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-safe-8.1.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-safe-8.1.0.bazel @@ -86,6 +86,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-sys-2.1.1+zstd.1.5.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-sys-2.1.1+zstd.1.5.7.bazel index 8a477d420a21..1b3fc3037397 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-sys-2.1.1+zstd.1.5.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zstd-sys-2.1.1+zstd.1.5.7.bazel @@ -85,6 +85,7 @@ rust_library( "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia": [], "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/argfile-1.0.0/BUILD.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/argfile-1.0.0/BUILD.bazel deleted file mode 100644 index d9f4480097d6..000000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/argfile-1.0.0/BUILD.bazel +++ /dev/null @@ -1,15 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -package(default_visibility = ["//visibility:public"]) - -alias( - name = "argfile-1.0.0", - actual = "@vendor_ts__argfile-1.0.0//:argfile", - tags = ["manual"], -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/argfile/BUILD.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/argfile/BUILD.bazel deleted file mode 100644 index 308c6689fa8e..000000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/argfile/BUILD.bazel +++ /dev/null @@ -1,15 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -package(default_visibility = ["//visibility:public"]) - -alias( - name = "argfile", - actual = "@vendor_ts__argfile-1.0.0//:argfile", - tags = ["manual"], -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/crates.bzl b/misc/bazel/3rdparty/tree_sitter_extractors_deps/crates.bzl index da875007ceff..326e095a8d5b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/crates.bzl +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/crates.bzl @@ -360,7 +360,6 @@ _NORMAL_DEPENDENCIES = { "rust/extractor": { _COMMON_CONDITION: { "anyhow": Label("@vendor_ts//anyhow-1.0.104"), - "argfile": Label("@vendor_ts//argfile-1.0.0"), "chalk-ir": Label("@vendor_ts//chalk-ir-0.104.0"), "chrono": Label("@vendor_ts//chrono-0.4.45"), "clap": Label("@vendor_ts//clap-4.6.7"), @@ -808,9 +807,9 @@ _CONDITIONS = { "cfg(any(target_os = \"macos\", target_os = \"ios\", target_os = \"freebsd\"))": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-macabi", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:i686-unknown-freebsd", "@rules_rust//rust/platform:x86_64-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-ios", "@rules_rust//rust/platform:x86_64-apple-ios-macabi", "@rules_rust//rust/platform:x86_64-unknown-freebsd"], "cfg(any(target_os = \"macos\", target_os = \"openbsd\", target_os = \"vita\", target_os = \"emscripten\"))": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:sparc64-unknown-openbsd", "@rules_rust//rust/platform:wasm32-unknown-emscripten", "@rules_rust//rust/platform:x86_64-apple-darwin"], "cfg(any(target_pointer_width = \"8\", target_pointer_width = \"16\", target_pointer_width = \"32\"))": ["@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:arm-unknown-linux-musleabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-pc-windows-msvc", "@rules_rust//rust/platform:i686-unknown-freebsd", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:mips-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:riscv32imac-unknown-none-elf", "@rules_rust//rust/platform:riscv32imc-unknown-none-elf", "@rules_rust//rust/platform:thumbv6m-none-eabi", "@rules_rust//rust/platform:thumbv7em-none-eabi", "@rules_rust//rust/platform:thumbv7em-none-eabihf", "@rules_rust//rust/platform:thumbv7m-none-eabi", "@rules_rust//rust/platform:thumbv8m.main-none-eabi", "@rules_rust//rust/platform:thumbv8m.main-none-eabihf", "@rules_rust//rust/platform:wasm32-unknown-emscripten", "@rules_rust//rust/platform:wasm32-unknown-unknown", "@rules_rust//rust/platform:wasm32-wasip1", "@rules_rust//rust/platform:wasm32-wasip1-threads", "@rules_rust//rust/platform:wasm32-wasip2"], - "cfg(any(unix, target_os = \"hermit\", target_os = \"wasi\"))": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-macabi", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:aarch64-unknown-fuchsia", "@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:arm-unknown-linux-musleabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-unknown-freebsd", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:loongarch64-unknown-linux-gnu", "@rules_rust//rust/platform:mips-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:sparc64-unknown-linux-gnu", "@rules_rust//rust/platform:sparc64-unknown-netbsd", "@rules_rust//rust/platform:sparc64-unknown-openbsd", "@rules_rust//rust/platform:wasm32-unknown-emscripten", "@rules_rust//rust/platform:wasm32-wasip1", "@rules_rust//rust/platform:wasm32-wasip1-threads", "@rules_rust//rust/platform:wasm32-wasip2", "@rules_rust//rust/platform:x86_64-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-ios", "@rules_rust//rust/platform:x86_64-apple-ios-macabi", "@rules_rust//rust/platform:x86_64-linux-android", "@rules_rust//rust/platform:x86_64-unknown-freebsd", "@rules_rust//rust/platform:x86_64-unknown-fuchsia", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"], + "cfg(any(unix, target_os = \"hermit\", target_os = \"wasi\"))": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-macabi", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:aarch64-unknown-fuchsia", "@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:arm-unknown-linux-musleabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-unknown-freebsd", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:loongarch64-unknown-linux-gnu", "@rules_rust//rust/platform:mips-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia", "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:sparc64-unknown-linux-gnu", "@rules_rust//rust/platform:sparc64-unknown-netbsd", "@rules_rust//rust/platform:sparc64-unknown-openbsd", "@rules_rust//rust/platform:wasm32-unknown-emscripten", "@rules_rust//rust/platform:wasm32-wasip1", "@rules_rust//rust/platform:wasm32-wasip1-threads", "@rules_rust//rust/platform:wasm32-wasip2", "@rules_rust//rust/platform:x86_64-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-ios", "@rules_rust//rust/platform:x86_64-apple-ios-macabi", "@rules_rust//rust/platform:x86_64-linux-android", "@rules_rust//rust/platform:x86_64-unknown-freebsd", "@rules_rust//rust/platform:x86_64-unknown-fuchsia", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"], "cfg(not(target_has_atomic = \"ptr\"))": ["@rules_rust//rust/platform:riscv32imc-unknown-none-elf", "@rules_rust//rust/platform:thumbv6m-none-eabi"], - "cfg(not(windows))": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-macabi", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:aarch64-unknown-fuchsia", "@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:aarch64-unknown-none", "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710", "@rules_rust//rust/platform:aarch64-unknown-uefi", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:arm-unknown-linux-musleabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-unknown-freebsd", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:loongarch64-unknown-linux-gnu", "@rules_rust//rust/platform:mips-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:riscv32imac-unknown-none-elf", "@rules_rust//rust/platform:riscv32imc-unknown-none-elf", "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu", "@rules_rust//rust/platform:riscv64gc-unknown-none-elf", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:sparc64-unknown-linux-gnu", "@rules_rust//rust/platform:sparc64-unknown-netbsd", "@rules_rust//rust/platform:sparc64-unknown-openbsd", "@rules_rust//rust/platform:thumbv6m-none-eabi", "@rules_rust//rust/platform:thumbv7em-none-eabi", "@rules_rust//rust/platform:thumbv7em-none-eabihf", "@rules_rust//rust/platform:thumbv7m-none-eabi", "@rules_rust//rust/platform:thumbv8m.main-none-eabi", "@rules_rust//rust/platform:thumbv8m.main-none-eabihf", "@rules_rust//rust/platform:wasm32-unknown-emscripten", "@rules_rust//rust/platform:wasm32-unknown-unknown", "@rules_rust//rust/platform:wasm32-wasip1", "@rules_rust//rust/platform:wasm32-wasip1-threads", "@rules_rust//rust/platform:wasm32-wasip2", "@rules_rust//rust/platform:x86_64-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-ios", "@rules_rust//rust/platform:x86_64-apple-ios-macabi", "@rules_rust//rust/platform:x86_64-linux-android", "@rules_rust//rust/platform:x86_64-unknown-freebsd", "@rules_rust//rust/platform:x86_64-unknown-fuchsia", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu", "@rules_rust//rust/platform:x86_64-unknown-none", "@rules_rust//rust/platform:x86_64-unknown-uefi"], + "cfg(not(windows))": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-macabi", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:aarch64-unknown-fuchsia", "@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:aarch64-unknown-none", "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710", "@rules_rust//rust/platform:aarch64-unknown-uefi", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:arm-unknown-linux-musleabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-unknown-freebsd", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:loongarch64-unknown-linux-gnu", "@rules_rust//rust/platform:mips-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:riscv32imac-unknown-none-elf", "@rules_rust//rust/platform:riscv32imc-unknown-none-elf", "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia", "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu", "@rules_rust//rust/platform:riscv64gc-unknown-none-elf", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:sparc64-unknown-linux-gnu", "@rules_rust//rust/platform:sparc64-unknown-netbsd", "@rules_rust//rust/platform:sparc64-unknown-openbsd", "@rules_rust//rust/platform:thumbv6m-none-eabi", "@rules_rust//rust/platform:thumbv7em-none-eabi", "@rules_rust//rust/platform:thumbv7em-none-eabihf", "@rules_rust//rust/platform:thumbv7m-none-eabi", "@rules_rust//rust/platform:thumbv8m.main-none-eabi", "@rules_rust//rust/platform:thumbv8m.main-none-eabihf", "@rules_rust//rust/platform:wasm32-unknown-emscripten", "@rules_rust//rust/platform:wasm32-unknown-unknown", "@rules_rust//rust/platform:wasm32-wasip1", "@rules_rust//rust/platform:wasm32-wasip1-threads", "@rules_rust//rust/platform:wasm32-wasip2", "@rules_rust//rust/platform:x86_64-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-ios", "@rules_rust//rust/platform:x86_64-apple-ios-macabi", "@rules_rust//rust/platform:x86_64-linux-android", "@rules_rust//rust/platform:x86_64-unknown-freebsd", "@rules_rust//rust/platform:x86_64-unknown-fuchsia", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu", "@rules_rust//rust/platform:x86_64-unknown-none", "@rules_rust//rust/platform:x86_64-unknown-uefi"], "cfg(target_family = \"wasm\")": ["@rules_rust//rust/platform:wasm32-unknown-emscripten", "@rules_rust//rust/platform:wasm32-unknown-unknown", "@rules_rust//rust/platform:wasm32-wasip1", "@rules_rust//rust/platform:wasm32-wasip1-threads", "@rules_rust//rust/platform:wasm32-wasip2"], "cfg(target_os = \"android\")": ["@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:x86_64-linux-android"], "cfg(target_os = \"haiku\")": [], @@ -823,7 +822,7 @@ _CONDITIONS = { "cfg(target_os = \"wasi\")": ["@rules_rust//rust/platform:wasm32-wasip1", "@rules_rust//rust/platform:wasm32-wasip1-threads", "@rules_rust//rust/platform:wasm32-wasip2"], "cfg(target_os = \"windows\")": ["@rules_rust//rust/platform:aarch64-pc-windows-msvc", "@rules_rust//rust/platform:i686-pc-windows-msvc", "@rules_rust//rust/platform:x86_64-pc-windows-msvc"], "cfg(target_vendor = \"apple\")": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-macabi", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-ios", "@rules_rust//rust/platform:x86_64-apple-ios-macabi"], - "cfg(unix)": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-macabi", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:aarch64-unknown-fuchsia", "@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:arm-unknown-linux-musleabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-unknown-freebsd", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:loongarch64-unknown-linux-gnu", "@rules_rust//rust/platform:mips-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:sparc64-unknown-linux-gnu", "@rules_rust//rust/platform:sparc64-unknown-netbsd", "@rules_rust//rust/platform:sparc64-unknown-openbsd", "@rules_rust//rust/platform:wasm32-unknown-emscripten", "@rules_rust//rust/platform:x86_64-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-ios", "@rules_rust//rust/platform:x86_64-apple-ios-macabi", "@rules_rust//rust/platform:x86_64-linux-android", "@rules_rust//rust/platform:x86_64-unknown-freebsd", "@rules_rust//rust/platform:x86_64-unknown-fuchsia", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"], + "cfg(unix)": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-macabi", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:aarch64-unknown-fuchsia", "@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:arm-unknown-linux-musleabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-unknown-freebsd", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:loongarch64-unknown-linux-gnu", "@rules_rust//rust/platform:mips-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:riscv64gc-unknown-fuchsia", "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:sparc64-unknown-linux-gnu", "@rules_rust//rust/platform:sparc64-unknown-netbsd", "@rules_rust//rust/platform:sparc64-unknown-openbsd", "@rules_rust//rust/platform:wasm32-unknown-emscripten", "@rules_rust//rust/platform:x86_64-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-ios", "@rules_rust//rust/platform:x86_64-apple-ios-macabi", "@rules_rust//rust/platform:x86_64-linux-android", "@rules_rust//rust/platform:x86_64-unknown-freebsd", "@rules_rust//rust/platform:x86_64-unknown-fuchsia", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"], "cfg(windows)": ["@rules_rust//rust/platform:aarch64-pc-windows-msvc", "@rules_rust//rust/platform:i686-pc-windows-msvc", "@rules_rust//rust/platform:x86_64-pc-windows-msvc"], "cfg(windows_raw_dylib)": [], "i686-apple-darwin": ["@rules_rust//rust/platform:i686-apple-darwin"], @@ -837,6 +836,7 @@ _CONDITIONS = { "powerpc-unknown-linux-gnu": ["@rules_rust//rust/platform:powerpc-unknown-linux-gnu"], "riscv32imac-unknown-none-elf": ["@rules_rust//rust/platform:riscv32imac-unknown-none-elf"], "riscv32imc-unknown-none-elf": ["@rules_rust//rust/platform:riscv32imc-unknown-none-elf"], + "riscv64gc-unknown-fuchsia": ["@rules_rust//rust/platform:riscv64gc-unknown-fuchsia"], "riscv64gc-unknown-linux-gnu": ["@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu"], "riscv64gc-unknown-none-elf": ["@rules_rust//rust/platform:riscv64gc-unknown-none-elf"], "s390x-unknown-linux-gnu": ["@rules_rust//rust/platform:s390x-unknown-linux-gnu"], @@ -983,16 +983,6 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.anyhow-1.0.104.bazel"), ) - maybe( - http_archive, - name = "vendor_ts__argfile-1.0.0", - sha256 = "99489a733dea0d2930bfa59c243146a8513ce7b0991b9d006647687cc61f53e7", - type = "tar.gz", - urls = ["https://static.crates.io/crates/argfile/1.0.0/download"], - strip_prefix = "argfile-1.0.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.argfile-1.0.0.bazel"), - ) - maybe( http_archive, name = "vendor_ts__arrayvec-0.7.8", @@ -1693,16 +1683,6 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.foldhash-0.2.0.bazel"), ) - maybe( - http_archive, - name = "vendor_ts__fs-err-3.3.0", - sha256 = "73fde052dbfc920003cfd2c8e2c6e6d4cc7c1091538c3a24226cec0665ab08c0", - type = "tar.gz", - urls = ["https://static.crates.io/crates/fs-err/3.3.0/download"], - strip_prefix = "fs-err-3.3.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.fs-err-3.3.0.bazel"), - ) - maybe( http_archive, name = "vendor_ts__fsevent-sys-4.1.0", @@ -2343,16 +2323,6 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.oorandom-11.1.5.bazel"), ) - maybe( - http_archive, - name = "vendor_ts__os_str_bytes-7.2.0", - sha256 = "89284d0c2af7b0eb5e814798aa07265413c8fd72009f7fc82ea25a81fb287ce9", - type = "tar.gz", - urls = ["https://static.crates.io/crates/os_str_bytes/7.2.0/download"], - strip_prefix = "os_str_bytes-7.2.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.os_str_bytes-7.2.0.bazel"), - ) - maybe( http_archive, name = "vendor_ts__parking_lot-0.12.5", @@ -4056,7 +4026,6 @@ def crate_repositories(): return [ struct(repo = "vendor_ts", is_dev_dep = False), struct(repo = "vendor_ts__anyhow-1.0.104", is_dev_dep = False), - struct(repo = "vendor_ts__argfile-1.0.0", is_dev_dep = False), struct(repo = "vendor_ts__chalk-ir-0.104.0", is_dev_dep = False), struct(repo = "vendor_ts__chrono-0.4.45", is_dev_dep = False), struct(repo = "vendor_ts__clap-4.6.7", is_dev_dep = False), diff --git a/misc/bazel/registry/modules/rules_kotlin/2.2.2-codeql.1/patches/codeql_add_language_version_option.patch b/misc/bazel/registry/modules/rules_kotlin/2.2.2-codeql.1/patches/codeql_add_language_version_option.patch deleted file mode 100644 index 795d1f88f387..000000000000 --- a/misc/bazel/registry/modules/rules_kotlin/2.2.2-codeql.1/patches/codeql_add_language_version_option.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- a/src/main/starlark/core/options/opts.kotlinc.bzl 2000-01-01 01:00:00.000000000 +0100 -+++ b/src/main/starlark/core/options/opts.kotlinc.bzl 2025-11-17 16:51:01.012063056 +0100 -@@ -51,6 +51,11 @@ - return None - return ["-Xjdk-release=%s" % version] - -+def _map_language_version_to_flag(version): -+ if not version: -+ return None -+ return ["-language-version=%s" % version, "-api-version=%s" % version] -+ - _KOPTS_ALL = { - "include_stdlibs": struct( - args = dict( -@@ -495,6 +500,15 @@ - value_to_flag = None, - map_value_to_flag = _map_warning_level, - ), -+ "language_version": struct( -+ args = dict( -+ default = "1.9", -+ doc = "-language-version", -+ ), -+ type = attr.string, -+ value_to_flag = None, -+ map_value_to_flag = _map_language_version_to_flag, -+ ), - } - - def _merge(key, rule_defined): diff --git a/misc/bazel/registry/modules/rules_kotlin/2.2.2-codeql.1/source.json b/misc/bazel/registry/modules/rules_kotlin/2.2.2-codeql.1/source.json deleted file mode 100644 index 7025fb00a273..000000000000 --- a/misc/bazel/registry/modules/rules_kotlin/2.2.2-codeql.1/source.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "integrity": "sha256-QR2yavs0ksyDUbW1NJkxUir+LFTyZRttEncwoSVtD2A=", - "url": "https://github.com/bazelbuild/rules_kotlin/releases/download/v2.2.2/rules_kotlin-v2.2.2.tar.gz", - "patches": { - "codeql_add_language_version_option.patch": "sha256-HoH8NWXxmYHmm/SxaugRdXgMntvcQx5gRLW2yQIvWhM=", - "codeql_do_not_emit_jdeps.patch": "sha256-cg06knW+Eq13qHCaelbnZka/WnGPvRrcqXHtpXsy/rA=" - }, - "patch_strip": 1 -} diff --git a/misc/bazel/registry/modules/rules_kotlin/2.2.2-codeql.1/MODULE.bazel b/misc/bazel/registry/modules/rules_kotlin/2.4.21-codeql.1/MODULE.bazel similarity index 51% rename from misc/bazel/registry/modules/rules_kotlin/2.2.2-codeql.1/MODULE.bazel rename to misc/bazel/registry/modules/rules_kotlin/2.4.21-codeql.1/MODULE.bazel index ec37914a8f73..16139faa4dec 100644 --- a/misc/bazel/registry/modules/rules_kotlin/2.2.2-codeql.1/MODULE.bazel +++ b/misc/bazel/registry/modules/rules_kotlin/2.4.21-codeql.1/MODULE.bazel @@ -1,21 +1,19 @@ +"""Bazel module manifest for the released rules_kotlin package.""" + module( name = "rules_kotlin", - version = "2.2.2-codeql.1", + version = "2.4.21-codeql.1", compatibility_level = 1, repo_name = "rules_kotlin", ) bazel_dep(name = "platforms", version = "0.0.11") -bazel_dep(name = "bazel_skylib", version = "1.7.1") +bazel_dep(name = "bazel_skylib", version = "1.8.2") bazel_dep(name = "rules_java", version = "8.9.0") -bazel_dep(name = "rules_android", version = "0.6.4") -bazel_dep(name = "bazel_features", version = "1.25.0") -bazel_dep(name = "protobuf", version = "29.0", repo_name = "com_google_protobuf") -bazel_dep(name = "rules_proto", version = "6.0.2", repo_name = "rules_proto") -bazel_dep(name = "abseil-py", version = "2.1.0", repo_name = "py_absl") -bazel_dep(name = "rules_cc", version = "0.0.16") -bazel_dep(name = "bazel_worker_api", version = "0.0.8") -bazel_dep(name = "bazel_worker_java", version = "0.0.8") +bazel_dep(name = "rules_license", version = "1.0.0") +bazel_dep(name = "rules_android", version = "0.7.3") +bazel_dep(name = "bazel_features", version = "1.39.0") +bazel_dep(name = "bazel_lib", version = "3.1.0") rules_java_toolchains = use_extension("@rules_java//java:extensions.bzl", "toolchains") use_repo(rules_java_toolchains, "remote_java_tools") @@ -26,13 +24,16 @@ rules_kotlin_extensions = use_extension( ) use_repo( rules_kotlin_extensions, + "btapi_impl", "com_github_google_ksp", "com_github_jetbrains_kotlin", "com_github_pinterest_ktlint", - "kotlin_build_tools_impl", + "jarjar", + "kotlin_build_tools_api", + "kotlinx_coroutines_core_jvm", "kotlinx_serialization_core_jvm", "kotlinx_serialization_json", "kotlinx_serialization_json_jvm", ) -register_toolchains("//kotlin/internal:default_toolchain") +register_toolchains("//kotlin:default_toolchain") diff --git a/misc/bazel/registry/modules/rules_kotlin/2.4.21-codeql.1/patches/codeql_add_language_version_option.patch b/misc/bazel/registry/modules/rules_kotlin/2.4.21-codeql.1/patches/codeql_add_language_version_option.patch new file mode 100644 index 000000000000..105b80afe186 --- /dev/null +++ b/misc/bazel/registry/modules/rules_kotlin/2.4.21-codeql.1/patches/codeql_add_language_version_option.patch @@ -0,0 +1,15 @@ +CodeQL still builds extractors with Kotlin 1.8 and 1.9 language/API versions. +Keep those supported and keep the API version aligned with the language version. +--- a/src/main/starlark/core/options/opts.kotlinc.bzl ++++ b/src/main/starlark/core/options/opts.kotlinc.bzl +@@ -93,9 +93,7 @@ + def _map_language_version_to_flag(version): + if not version: + return None +- if int(version.split(".")[0]) < 2: +- fail("rules_kotlin requires language_version 2.0 or newer; got %s" % version) +- return ["-language-version=%s" % version] ++ return ["-language-version=%s" % version, "-api-version=%s" % version] + + def _map_xxlanguage_to_flag(values): + return ["-XXLanguage:%s" % v for v in values] diff --git a/misc/bazel/registry/modules/rules_kotlin/2.2.2-codeql.1/patches/codeql_do_not_emit_jdeps.patch b/misc/bazel/registry/modules/rules_kotlin/2.4.21-codeql.1/patches/codeql_do_not_emit_jdeps.patch similarity index 94% rename from misc/bazel/registry/modules/rules_kotlin/2.2.2-codeql.1/patches/codeql_do_not_emit_jdeps.patch rename to misc/bazel/registry/modules/rules_kotlin/2.4.21-codeql.1/patches/codeql_do_not_emit_jdeps.patch index 838750ba12eb..aeda6be2c569 100644 --- a/misc/bazel/registry/modules/rules_kotlin/2.2.2-codeql.1/patches/codeql_do_not_emit_jdeps.patch +++ b/misc/bazel/registry/modules/rules_kotlin/2.4.21-codeql.1/patches/codeql_do_not_emit_jdeps.patch @@ -4,7 +4,7 @@ allows us to not have to specify that option (and therefore pull in `rules_kotli internal repo. --- a/kotlin/settings/BUILD.bazel +++ b/kotlin/settings/BUILD.bazel -@@ -16,6 +16,6 @@ release_archive( +@@ -16,7 +16,7 @@ # Flag that controls the emission of jdeps files during kotlin jvm compilation. bool_flag( name = "jvm_emit_jdeps", @@ -12,4 +12,4 @@ internal repo. + build_setting_default = False, visibility = ["//visibility:public"], ) - + diff --git a/misc/bazel/registry/modules/rules_kotlin/2.4.21-codeql.1/patches/codeql_do_not_propagate_kotlin_warning_mode_to_javac.patch b/misc/bazel/registry/modules/rules_kotlin/2.4.21-codeql.1/patches/codeql_do_not_propagate_kotlin_warning_mode_to_javac.patch new file mode 100644 index 000000000000..1f9eac1636c8 --- /dev/null +++ b/misc/bazel/registry/modules/rules_kotlin/2.4.21-codeql.1/patches/codeql_do_not_propagate_kotlin_warning_mode_to_javac.patch @@ -0,0 +1,28 @@ +rules_kotlin 2.4 propagates the Kotlin warning mode to javac, so the extractor's +Kotlin warn = "error" setting also makes Java warnings fatal. This breaks the +Java 8 target with JDK 25's obsolete source/target option warnings. Keep Kotlin +warnings-as-errors for Kotlin compilation without changing javac warning behavior. +--- a/kotlin/internal/jvm/compile.bzl ++++ b/kotlin/internal/jvm/compile.bzl +@@ -1162,21 +1162,6 @@ + for flag in javac_options_to_flags(plugin[JavacOptions]) + ]) + +- # Compile the Java half with the same warning mode as the kotlin part, unless the javac +- # options (or a plugin's) already set one: a single `warn` value governs the whole target. +- # A per-diagnostic level in `x_warning_level` limits the derivation, because javac has no +- # equivalent of `-Xwarning-level`. A diagnostic kept at `warning` or `disabled` under +- # `warn = "error"` must not turn every javac warning into an error, and a diagnostic raised +- # to `warning` or `error` under `warn = "off"` must not silence every javac warning. +- if "-nowarn" not in javac_opts and "-Werror" not in javac_opts: +- kotlinc_warn = getattr(kotlinc_options, "warn", None) if kotlinc_options else None +- warning_levels = (getattr(kotlinc_options, "x_warning_level", None) if kotlinc_options else None) or {} +- levels = warning_levels.values() +- if kotlinc_warn == "off" and "error" not in levels and "warning" not in levels: +- javac_opts.append("-nowarn") +- elif kotlinc_warn == "error" and "warning" not in levels and "disabled" not in levels: +- javac_opts.append("-Werror") +- + java_info = java_common.compile( + ctx, + source_files = srcs.java, diff --git a/misc/bazel/registry/modules/rules_kotlin/2.4.21-codeql.1/source.json b/misc/bazel/registry/modules/rules_kotlin/2.4.21-codeql.1/source.json new file mode 100644 index 000000000000..9556aa0286b4 --- /dev/null +++ b/misc/bazel/registry/modules/rules_kotlin/2.4.21-codeql.1/source.json @@ -0,0 +1,10 @@ +{ + "integrity": "sha256-qjJVRS2+m1LaK6d4fwhl8QeAWIUQnznD1br8IaUhvLY=", + "url": "https://github.com/bazel-contrib/rules_kotlin/releases/download/v2.4.21/rules_kotlin-v2.4.21.tar.gz", + "patches": { + "codeql_add_language_version_option.patch": "sha256-ml0fzhPwNozMi6yKtEn9YLM8LSQE4BWiimdwYzennCo=", + "codeql_do_not_emit_jdeps.patch": "sha256-yoBFnSWJyeF+gyhX+03TMTnRxUQJjup/f/KORdxVsAE=", + "codeql_do_not_propagate_kotlin_warning_mode_to_javac.patch": "sha256-TvfKfINvi1/tcLq3HDUs2doD4kr8AkMv0nsZvUHPjwg=" + }, + "patch_strip": 1 +} diff --git a/misc/bazel/registry/modules/rules_kotlin/metadata.json b/misc/bazel/registry/modules/rules_kotlin/metadata.json index ea756f783643..bb307a93badf 100644 --- a/misc/bazel/registry/modules/rules_kotlin/metadata.json +++ b/misc/bazel/registry/modules/rules_kotlin/metadata.json @@ -1,5 +1,5 @@ { - "homepage": "https://github.com/bazelbuild/rules_kotlin", + "homepage": "https://github.com/bazel-contrib/rules_kotlin", "maintainers": [ { "email": "ben@ben.cm", @@ -18,10 +18,11 @@ } ], "repository": [ - "github:bazelbuild/rules_kotlin" + "github:bazelbuild/rules_kotlin", + "github:bazel-contrib/rules_kotlin" ], "versions": [ - "2.2.2-codeql.1" + "2.4.21-codeql.1" ], "yanked_versions": {} } diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index c25b25ef9d23..037ffbb300c5 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 1.0.61 +version: 1.0.62-dev groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/change-notes/2026-10-30-trusted-schema-not-sensitive.md b/python/ql/lib/change-notes/2026-10-30-trusted-schema-not-sensitive.md new file mode 100644 index 000000000000..2e4c6e5ee2a3 --- /dev/null +++ b/python/ql/lib/change-notes/2026-10-30-trusted-schema-not-sensitive.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The sensitive data heuristics treat names built on `trusted_schema`, such as SQLite's `set_trusted_schema` setting, as non-sensitive. This removes false positive results from queries that use the sensitive data library (for example `py/clear-text-logging-sensitive-data`). diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index 790d679f2722..e6e2c515b0b1 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 7.2.9 +version: 7.2.10-dev groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index 9721ce156acb..bf57dfd657c0 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 1.9.0 +version: 1.9.1-dev groups: - python - queries diff --git a/ruby/ql/lib/change-notes/2026-10-30-trusted-schema-not-sensitive.md b/ruby/ql/lib/change-notes/2026-10-30-trusted-schema-not-sensitive.md new file mode 100644 index 000000000000..ade6e38949ff --- /dev/null +++ b/ruby/ql/lib/change-notes/2026-10-30-trusted-schema-not-sensitive.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The sensitive data heuristics treat names built on `trusted_schema`, such as SQLite's `set_trusted_schema` setting, as non-sensitive. This removes false positive results from queries that use the sensitive data library (for example `rb/clear-text-logging-sensitive-data`). diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index ea3f0332d7d0..fe92d1089f2d 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 7.1.1 +version: 7.1.2-dev groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index 566814341ec2..32e21fbacce8 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 1.7.0 +version: 1.7.1-dev groups: - ruby - queries diff --git a/rust/extractor/Cargo.toml b/rust/extractor/Cargo.toml index e2c99350cace..8c193112faef 100644 --- a/rust/extractor/Cargo.toml +++ b/rust/extractor/Cargo.toml @@ -30,7 +30,6 @@ ra_ap_intern = "0.0.358" serde = "1.0.229" serde_with = "3.24.0" triomphe = "0.1.17" -argfile = "1.0.0" codeql-extractor = { path = "../../shared/tree-sitter-extractor" } rust-extractor-macros = { path = "macros" } itertools = "0.15.0" diff --git a/rust/extractor/macros/src/lib.rs b/rust/extractor/macros/src/lib.rs index 5ba496d4661d..274c65275c58 100644 --- a/rust/extractor/macros/src/lib.rs +++ b/rust/extractor/macros/src/lib.rs @@ -20,9 +20,7 @@ pub fn extractor_cli_config(_attr: TokenStream, item: TokenStream) -> TokenStrea .iter() .map(|f| { let ty_tip = get_type_tip(&f.ty); - if f.ident.as_ref().is_some_and(|i| i != "inputs") - && ty_tip.is_some_and(|i| i == "Vec") - { + if ty_tip.is_some_and(|i| i == "Vec") { quote! { #[serde(deserialize_with="deserialize::deserialize_newline_or_comma_separated_vec")] #f @@ -62,10 +60,6 @@ pub fn extractor_cli_config(_attr: TokenStream, item: TokenStream) -> TokenStrea #[serde(skip_serializing_if="u8::is_zero")] #id: u8 } - } else if id == &format_ident!("inputs") { - quote! { - #f - } } else if type_tip.is_some_and(|i| i == "Vec" || i == "FxHashMap" || i == "HashMap") { quote! { #[arg(long)] @@ -84,14 +78,8 @@ pub fn extractor_cli_config(_attr: TokenStream, item: TokenStream) -> TokenStrea .iter() .map(|f| { let id = f.ident.as_ref().unwrap(); - if id == &format_ident!("inputs") { - quote! { - .field("number of inputs", &self.#id.len()) - } - } else { - quote! { - .field(stringify!(#id), &self.#id) - } + quote! { + .field(stringify!(#id), &self.#id) } }) .collect::>(); diff --git a/rust/extractor/src/config.rs b/rust/extractor/src/config.rs index 81e42c552c82..88f7ada715c6 100644 --- a/rust/extractor/src/config.rs +++ b/rust/extractor/src/config.rs @@ -62,7 +62,7 @@ pub struct Config { pub logging_flamegraph: Option, pub logging_verbosity: Option, pub trap_compression: Compression, - pub inputs: Vec, + pub file_list: Option, pub qltest: bool, pub qltest_cargo_check: bool, pub qltest_dependencies: Vec, @@ -95,9 +95,7 @@ impl Config { } pub fn extract() -> anyhow::Result { - let args = argfile::expand_args(argfile::parse_fromfile, argfile::PREFIX) - .context("expanding parameter files")?; - let cli_args = CliConfig::parse_from(args); + let cli_args = CliConfig::parse(); let mut figment = Figment::new() .merge(Env::raw().filter_map(|f| { if f.eq("CODEQL_VERBOSITY") { diff --git a/rust/extractor/src/configuration.rs b/rust/extractor/src/configuration.rs new file mode 100644 index 000000000000..cbf94ee068d3 --- /dev/null +++ b/rust/extractor/src/configuration.rs @@ -0,0 +1,307 @@ +use crate::util::cmp_option_by; +use itertools::Itertools; +use ra_ap_base_db::{SourceDatabase, SourceRootId, all_crates}; +use ra_ap_cfg::{CfgAtom, CfgOptions}; +use ra_ap_hir::Semantics; +use ra_ap_ide_db::RootDatabase; +use ra_ap_project_model::ProjectManifest; +use ra_ap_vfs::{FileId, Vfs}; +use std::cmp::Ordering; +use std::collections::{BTreeMap, HashMap, HashSet, btree_map::Entry}; +use std::path::{Path, PathBuf}; + +/// Returns the enclosing directory of the manifest file. +pub fn manifest_parent(manifest: &ProjectManifest) -> &Path { + manifest.manifest_path().parent().as_ref() +} + +/// Reads the file's source-root ID in `db`. +/// +/// A source root is rust-analyzer's group of files within which relative paths +/// are resolved. It need not correspond to one crate: a package's library and +/// build script can share a source root. +fn source_root_id(db: &RootDatabase, file_id: FileId) -> SourceRootId { + db.file_source_root(file_id).source_root_id(db) +} + +/// Maps source root IDs to cfg options shared by all their crates, using only +/// metadata. +/// +/// In order for a file to be included in a crate the crate's root file and the +/// file must share the same source root. However, this condition is not +/// sufficient. The construction here relies on this to identify the cases where +/// this requirement _is_ sufficient to determine the cfg options of any crate +/// that could contain the file. Either because only one crate can contain it or +/// because all such crates share the same cfg options. +/// +/// Roots whose crates disagree map to `None` and need per-file semantic lookup. +fn root_configurations(db: &RootDatabase) -> HashMap> { + let mut configurations = HashMap::new(); + for &krate in all_crates(db).iter() { + let root = source_root_id(db, krate.data(db).root_file_id); + configurations + .entry(root) + .and_modify(|configuration: &mut Option<&CfgOptions>| { + // We're in the case where multiple crates share a source root, + // for example a library and its build script. If their cfg + // options differ, we mark the configuration as `None`. + if configuration.is_some_and(|cfg| cfg != krate.cfg_options(db)) { + *configuration = None; + } + }) + .or_insert_with(|| Some(krate.cfg_options(db))); + } + configurations +} + +/// Returns an iterator over the dependency files in `vfs`. +/// +/// These are files that correspond to libraries and that are not in `source_files`. +pub fn dependency_files<'a>( + db: &'a RootDatabase, + vfs: &'a Vfs, + source_files: &'a HashSet, +) -> impl Iterator { + vfs.iter().filter_map(|(file_id, file)| { + let file = file.as_path().map(<_ as AsRef>::as_ref)?; + (file.extension().is_some_and(|ext| ext == "rs") + && !source_files.contains(file) + && db + .source_root(source_root_id(db, file_id)) + .source_root(db) + .is_library) + .then_some((file_id, file)) + }) +} + +/// Compare two `CfgOptions`. Feature count wins, sorted cfg options break ties. +fn compare_cfg_options(left: &CfgOptions, right: &CfgOptions) -> Ordering { + let feature_count = |cfg_options: &CfgOptions| { + cfg_options + .into_iter() + .filter(|cfg| matches!(cfg, CfgAtom::KeyValue { key, .. } if key.as_str() == "feature")) + .count() + }; + feature_count(left) + .cmp(&feature_count(right)) + .then_with(|| left.into_iter().sorted().cmp(right.into_iter().sorted())) +} + +#[derive(PartialEq, Eq)] +struct DependencySource<'a> { + cfg_options: Option, + manifest: &'a ProjectManifest, +} + +impl Ord for DependencySource<'_> { + fn cmp(&self, other: &Self) -> Ordering { + // Compare by cfg options first, then by manifest parent directory + // (arbitrary but deterministic). + cmp_option_by(&self.cfg_options, &other.cfg_options, compare_cfg_options) + .then_with(|| manifest_parent(self.manifest).cmp(manifest_parent(other.manifest))) + } +} + +impl PartialOrd for DependencySource<'_> { + fn partial_cmp(&self, other: &Self) -> Option { + Some(self.cmp(other)) + } +} + +/// Tracks extraction candidates for each dependency file. Keeps one preferred +/// manifest per distinct set of cfg options, allowing lower-priority +/// configurations to be tried if the preferred one disables a file. +#[derive(Default)] +pub struct DependencyFiles<'a> { + files: BTreeMap>>, +} + +impl<'a> DependencyFiles<'a> { + /// Considers dependency files loaded from this manifest as extraction + /// candidates. The lexicographically largest manifest directory wins for + /// each configuration. + pub fn add_manifest( + &mut self, + manifest: &'a ProjectManifest, + semantics: &Semantics<'_, RootDatabase>, + vfs: &Vfs, + source_files: &HashSet, + ) { + let db = semantics.db; + let root_configurations = root_configurations(db); + for (file_id, file) in dependency_files(db, vfs, source_files) { + let root = source_root_id(db, file_id); + let cfg_options = match root_configurations.get(&root) { + // There's a unique cfg configuration for this file. + Some(Some(configuration)) => Some((*configuration).clone()), + // There's no unique cfg configuration for this file. In this + // case we fall back to the expensive `file_to_module_def` + // approach which requires rust_analyzer to calculate semantic + // information. + Some(None) => semantics + .file_to_module_def(file_id) + .map(|module| module.krate(db).cfg(db).clone()), + None => None, + }; + self.add_candidate(file, cfg_options, manifest); + } + } + + /// Adds `cfg_options` and `manifest` as an extraction candidate for the + /// given file unless a higher-priority candidate with the same cfg options + /// already exists. + fn add_candidate( + &mut self, + file: &Path, + cfg_options: Option, + manifest: &'a ProjectManifest, + ) { + let candidate = DependencySource { + cfg_options, + manifest, + }; + match self.files.entry(file.to_owned()) { + Entry::Occupied(mut entry) => { + let sources = entry.get_mut(); + if let Some(source) = sources + .iter_mut() + .find(|source| source.cfg_options == candidate.cfg_options) + { + if manifest_parent(manifest) > manifest_parent(source.manifest) { + source.manifest = manifest; + } + } else { + sources.push(candidate); + } + } + Entry::Vacant(entry) => { + entry.insert(vec![candidate]); + } + } + } + + /// Takes the highest-priority remaining context for each file, grouped by + /// manifest. Lower-priority configurations remain available if the selected + /// one disables the file. + pub fn by_manifests(&mut self) -> HashMap<&'a ProjectManifest, Vec> { + self.files + .iter_mut() + .filter_map(|(file, sources)| { + sources.sort_unstable(); + sources.pop().map(|source| (source.manifest, file.clone())) + }) + .into_group_map() + } + + /// Returns `true` if there are alternative configurations left for the + /// given file. + pub fn has_alternative(&self, file: &Path) -> bool { + self.files + .get(file) + .is_some_and(|sources| !sources.is_empty()) + } + + /// Marks a file as extracted, removing it from the map of files. + pub fn extracted(&mut self, file: &Path) { + self.files.remove(file); + } +} + +#[cfg(test)] +mod tests { + use super::*; + use ra_ap_base_db::{ + CrateGraphBuilder, CrateOrigin, CrateWorkspaceData, FileChange, FileSet, SourceRoot, + }; + use ra_ap_intern::Symbol; + use ra_ap_span::Edition; + use ra_ap_vfs::VfsPath; + use triomphe::Arc; + + fn cfg(features: &[&str]) -> CfgOptions { + let mut cfg = CfgOptions::default(); + for feature in features { + cfg.insert_key_value(Symbol::intern("feature"), Symbol::intern(feature)); + } + cfg + } + + fn workspace(files: &[&str], crates: &[(&str, &[&str])]) -> (RootDatabase, Vfs) { + let root = crate::cwd().unwrap(); + let mut vfs = Vfs::default(); + let mut file_set = FileSet::default(); + let mut change = FileChange::default(); + for &name in files { + let path = VfsPath::from(root.join(name)); + vfs.set_file_contents(path.clone(), Some(Vec::new())); + let (id, _) = vfs.file_id(&path).unwrap(); + file_set.insert(id, path); + } + let mut graph = CrateGraphBuilder::default(); + for &(name, features) in crates { + let (id, _) = vfs.file_id(&VfsPath::from(root.join(name))).unwrap(); + graph.add_crate_root( + id, + Edition::Edition2024, + None, + None, + cfg(features), + None, + Default::default(), + CrateOrigin::Library { + repo: None, + name: Symbol::intern(name), + }, + Vec::new(), + false, + Arc::new(root.clone()), + Arc::new(CrateWorkspaceData { + target: Err("unused in these tests".into()), + toolchain: None, + }), + ); + } + change.set_roots(vec![SourceRoot::new_library(file_set)]); + change.set_crate_graph(graph); + let mut db = RootDatabase::default(); + change.apply(&mut db); + (db, vfs) + } + + #[test] + fn selects_configuration_without_reading_dependency_sources() { + for crates in [ + vec![("lib.rs", &["a"][..])], + vec![("lib.rs", &["a"][..]), ("build.rs", &["a"][..])], + ] { + let (db, vfs) = workspace(&["lib.rs", "build.rs", "module.rs"], &crates); + let root = crate::cwd().unwrap(); + let manifest = ProjectManifest::from_manifest_file(root.join("Cargo.toml")).unwrap(); + let mut plan = DependencyFiles::default(); + plan.add_manifest(&manifest, &Semantics::new(&db), &vfs, &HashSet::new()); + assert_eq!(plan.files.len(), 3); + for sources in plan.files.values() { + assert_eq!(sources[0].cfg_options, Some(cfg(&["a"]))); + } + } + } + + #[test] + fn selects_highest_priority_in_either_order() { + let root = crate::cwd().unwrap(); + let manifest = |path| ProjectManifest::from_manifest_file(root.join(path)).unwrap(); + let candidates = [ + (manifest("z/Cargo.toml"), cfg(&["z"])), + (manifest("a/Cargo.toml"), cfg(&["a", "b"])), + (manifest("b/Cargo.toml"), cfg(&["a", "b"])), + ]; + for order in [[0, 1, 2], [2, 1, 0]] { + let mut plan = DependencyFiles::default(); + for (manifest, cfg) in order.map(|index| &candidates[index]) { + plan.add_candidate(Path::new("lib.rs"), Some(cfg.clone()), manifest); + } + let expected = HashMap::from([(&candidates[2].0, vec![PathBuf::from("lib.rs")])]); + assert_eq!(plan.by_manifests(), expected); + } + } +} diff --git a/rust/extractor/src/diagnostics.rs b/rust/extractor/src/diagnostics.rs index 0db3358d558a..ab88192c5d3e 100644 --- a/rust/extractor/src/diagnostics.rs +++ b/rust/extractor/src/diagnostics.rs @@ -5,7 +5,7 @@ use chrono::{DateTime, Utc}; use ra_ap_project_model::ProjectManifest; use serde::Serialize; use serde::ser::SerializeMap; -use std::collections::HashMap; +use std::collections::{HashMap, HashSet}; use std::fmt::Display; use std::fs::File; use std::path::{Path, PathBuf}; @@ -220,13 +220,15 @@ struct ExtractionSummary { type ExtractionDiagnostics = Diagnostics; fn summary(start: Instant, steps: &[ExtractionStep]) -> ExtractionSummary { - let mut number_of_manifests = 0; + // The manifests loaded during extraction. We might load the same manifest + // multiple times, so we use a set to keep track of unique manifests. + let mut manifests = HashSet::new(); let mut number_of_files = 0; let mut durations = HashMap::new(); for step in steps { match &step.action { ExtractionStepKind::LoadManifest => { - number_of_manifests += 1; + manifests.extend(step.file.as_ref()); } ExtractionStepKind::Parse => { number_of_files += 1; @@ -244,7 +246,7 @@ fn summary(start: Instant, steps: &[ExtractionStep]) -> ExtractionSummary { } info!("total duration: {total}"); ExtractionSummary { - number_of_manifests, + number_of_manifests: manifests.len(), number_of_files, durations: DurationsSummary { durations, total }, } @@ -284,3 +286,22 @@ pub fn emit_extraction_diagnostics( .with_context(|| format!("writing to diagnostics file {}", target.display()))?; Ok(()) } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn counts_unique_manifests_but_includes_reload_duration() { + let steps: Vec<_> = ["a/Cargo.toml", "b/Cargo.toml", "a/Cargo.toml"] + .into_iter() + .map(|path| ExtractionStep { + action: ExtractionStepKind::LoadManifest, + file: Some(PathBuf::from(path)), + ms: 1, + }) + .collect(); + let summary = summary(Instant::now(), &steps); + assert_eq!(summary.number_of_manifests, 2); + } +} diff --git a/rust/extractor/src/main.rs b/rust/extractor/src/main.rs index 72b6f20c9fb0..4ede43224d35 100644 --- a/rust/extractor/src/main.rs +++ b/rust/extractor/src/main.rs @@ -5,7 +5,7 @@ use crate::translate::SourceKind; use crate::trap::TrapId; use anyhow::Context; use archive::Archiver; -use ra_ap_base_db::SourceDatabase; +use configuration::{DependencyFiles, dependency_files, manifest_parent}; use ra_ap_hir::Semantics; use ra_ap_ide_db::RootDatabase; use ra_ap_ide_db::line_index::{LineCol, LineIndex}; @@ -14,13 +14,11 @@ use ra_ap_paths::{AbsPathBuf, Utf8PathBuf}; use ra_ap_project_model::{CargoConfig, ProjectManifest}; use ra_ap_vfs::Vfs; use rust_analyzer::{ParseResult, RustAnalyzer}; -use std::collections::HashSet; -use std::hash::RandomState; +use std::collections::{BTreeMap, HashSet}; +use std::fs::File; +use std::io::{self, BufRead, BufReader}; +use std::path::{Path, PathBuf}; use std::time::Instant; -use std::{ - collections::HashMap, - path::{Path, PathBuf}, -}; use std::{env, fs}; use tracing::{error, info, warn}; use tracing_subscriber::layer::SubscriberExt; @@ -28,6 +26,7 @@ use tracing_subscriber::util::SubscriberInitExt; mod archive; mod config; +mod configuration; mod crate_graph; mod diagnostics; pub mod generated; @@ -36,6 +35,7 @@ mod rust_analyzer; mod toolchain; mod translate; pub mod trap; +mod util; struct Extractor<'a> { archiver: &'a Archiver, @@ -200,6 +200,34 @@ impl<'a> Extractor<'a> { self.steps.push(ExtractionStep::find_manifests(before)); ret } + + fn group_files<'b>( + &mut self, + manifests: &'b [ProjectManifest], + files: &'b [PathBuf], + ) -> BTreeMap<&'b Path, (&'b ProjectManifest, Vec<&'b Path>)> { + let mut workspaces: BTreeMap<&Path, (&ProjectManifest, Vec<&Path>)> = manifests + .iter() + .map(|manifest| (manifest_parent(manifest), (manifest, Vec::new()))) + .collect(); + + 'outer: for file in files { + for ancestor in file.as_path().ancestors() { + if let Some((_, files)) = workspaces.get_mut(ancestor) { + files.push(file); + continue 'outer; + } + } + self.extract_without_semantics( + file, + SourceKind::Source, + RustAnalyzerNoSemantics::warning("no manifest found"), + ); + } + + workspaces.retain(|_, (_, files)| !files.is_empty()); + workspaces + } } fn cwd() -> anyhow::Result { @@ -212,12 +240,22 @@ fn cwd() -> anyhow::Result { } fn main() -> anyhow::Result<()> { - let mut cfg = config::Config::extract().context("failed to load configuration")?; - if cfg.qltest { - qltest::prepare(&mut cfg)?; - } let start = Instant::now(); - let (flame_layer, _flush_guard) = if let Some(path) = &cfg.logging_flamegraph { + let config = config::Config::extract().context("failed to load configuration")?; + let inputs = if config.qltest { + qltest::prepare(&config)? + } else if let Some(path) = &config.file_list { + let file = + File::open(path).with_context(|| format!("opening file list {}", path.display()))?; + BufReader::new(file) + .lines() + .map(|line| line.map(PathBuf::from)) + .collect::>>() + .with_context(|| format!("reading file list {}", path.display()))? + } else { + Vec::new() + }; + let (flame_layer, _flush_guard) = if let Some(path) = &config.logging_flamegraph { tracing_flame::FlameLayer::with_file(path) .ok() .map(|(a, b)| (Some(a), Some(b))) @@ -229,19 +267,19 @@ fn main() -> anyhow::Result<()> { tracing_subscriber::registry() .with(codeql_extractor::extractor::default_subscriber_with_level( "single_arch", - &cfg.logging_verbosity, + &config.logging_verbosity, )) .with(flame_layer) .init(); - info!("{cfg:#?}\n"); + info!("{config:#?}\n"); + info!("number of inputs: {}", inputs.len()); - let traps = trap::TrapFileProvider::new(&cfg).context("failed to set up trap files")?; + let traps = trap::TrapFileProvider::new(&config).context("failed to set up trap files")?; let archiver = archive::Archiver { - root: cfg.source_archive_dir.clone(), + root: config.source_archive_dir.clone(), }; let mut extractor = Extractor::new(&archiver, &traps); - let files: Vec = cfg - .inputs + let files = inputs .iter() .map(|file| { let file = std::path::absolute(file).unwrap_or(file.to_path_buf()); @@ -250,69 +288,53 @@ fn main() -> anyhow::Result<()> { // [1]: https://github.com/rust-lang/rust-analyzer/issues/18894#issuecomment-2580014730 dunce::canonicalize(&file).unwrap_or(file) }) - .collect(); + .collect::>(); let manifests = extractor.find_manifests(&files)?; - let mut map: HashMap<&Path, (&ProjectManifest, Vec<&Path>)> = manifests - .iter() - .map(|x| (x.manifest_path().parent().as_ref(), (x, Vec::new()))) - .collect(); - - 'outer: for file in &files { - for ancestor in file.as_path().ancestors() { - if let Some((_, files)) = map.get_mut(ancestor) { - files.push(file); - continue 'outer; - } - } - extractor.extract_without_semantics( - file, - SourceKind::Source, - RustAnalyzerNoSemantics::warning("no manifest found"), - ); - } + let workspaces = extractor.group_files(&manifests, &files); let cwd = cwd()?; log_project_toolchain(); - let (cargo_config, load_cargo_config) = cfg.to_cargo_config(&cwd); - let library_mode = if cfg.extract_dependencies_as_source { + let (cargo_config, load_cargo_config) = config.to_cargo_config(&cwd); + let library_mode = if config.extract_dependencies_as_source { SourceKind::Source } else { SourceKind::Library }; - let source_mode = if cfg.force_library_mode { + let source_mode = if config.force_library_mode { library_mode } else { SourceKind::Source }; - let mut processed_files: HashSet = - HashSet::from_iter(files.iter().cloned()); - for (manifest, files) in map.values().filter(|(_, files)| !files.is_empty()) { - if let Some((ref db, ref vfs)) = + let source_files = HashSet::from_iter(files.iter().cloned()); + + let mut dependencies = DependencyFiles::default(); + + // When there more than one workspace, it's not a priori clear in which + // workspace a dependency file should be extracted. + let dependency_extraction_ambiguity = workspaces.len() == 1; + + for (manifest, files) in workspaces.values() { + if let Some((db, vfs)) = extractor.load_manifest(manifest, &cargo_config, &load_cargo_config) { let before_crate_graph = Instant::now(); - crate_graph::extract_crate_graph(extractor.traps, db, vfs); + crate_graph::extract_crate_graph(extractor.traps, &db, &vfs); extractor .steps .push(ExtractionStep::crate_graph(before_crate_graph)); - let semantics = Semantics::new(db); + let semantics = Semantics::new(&db); for file in files { - match extractor.load_source(file, &semantics, vfs) { - Ok(()) => extractor.extract_with_semantics(file, &semantics, vfs, source_mode), + match extractor.load_source(file, &semantics, &vfs) { + Ok(()) => extractor.extract_with_semantics(file, &semantics, &vfs, source_mode), Err(e) => extractor.extract_without_semantics(file, source_mode, e), }; } - for (file_id, file) in vfs.iter() { - if let Some(file) = file.as_path().map(<_ as AsRef>::as_ref) - && file.extension().is_some_and(|ext| ext == "rs") - && processed_files.insert(file.to_owned()) - && db - .source_root(db.file_source_root(file_id).source_root_id(db)) - .source_root(db) - .is_library - { - extractor.extract_with_semantics(file, &semantics, vfs, library_mode); - extractor.archiver.archive(file); + // Fast path when there is no ambiguity in dependency extraction. + if dependency_extraction_ambiguity { + for (_, file) in dependency_files(&db, &vfs, &source_files) { + extractor.extract_with_semantics(file, &semantics, &vfs, library_mode); } + } else { + dependencies.add_manifest(manifest, &semantics, &vfs, &source_files); } } else { for file in files { @@ -324,6 +346,49 @@ fn main() -> anyhow::Result<()> { } } } + + // For each manifest, extract the dependency files for which it is + // preferred. Note that when `dependency_extraction_ambiguity` is true then + // `selected` below is empty. + loop { + let selected = dependencies.by_manifests(); + if selected.is_empty() { + break; + } + for (manifest, files) in selected { + if let Some((db, vfs)) = + extractor.load_manifest(manifest, &cargo_config, &load_cargo_config) + { + let semantics = Semantics::new(&db); + for file in files { + // A richer configuration can disable a file when using cfg + // options like `#[cfg(not(feature = "foo"))]`. When this is + // the case `file_to_module_def` will return `None` for the + // file. When this is the case and there are alternatives we + // do not extract the file yet. Instead the file will be + // considered again in the next iteration of the loop. + if !dependencies.has_alternative(&file) + || path_to_file_id(&file, &vfs) + .and_then(|id| semantics.file_to_module_def(id)) + .is_some() + { + extractor.extract_with_semantics(&file, &semantics, &vfs, library_mode); + dependencies.extracted(&file); + } + } + } else { + for file in files { + extractor.extract_without_semantics( + &file, + library_mode, + RustAnalyzerNoSemantics::warning("unable to reload manifest"), + ); + dependencies.extracted(&file); + } + } + } + } + let builtins_dir = env::var("CODEQL_EXTRACTOR_RUST_ROOT") .map(|path| Path::new(&path).join("tools").join("builtins"))?; let builtins = fs::read_dir(builtins_dir).context("failed to read builtins directory")?; @@ -335,5 +400,5 @@ fn main() -> anyhow::Result<()> { } } - extractor.emit_extraction_diagnostics(start, &cfg) + extractor.emit_extraction_diagnostics(start, &config) } diff --git a/rust/extractor/src/qltest.rs b/rust/extractor/src/qltest.rs index a4f06bbd7927..e90fc5e91c10 100644 --- a/rust/extractor/src/qltest.rs +++ b/rust/extractor/src/qltest.rs @@ -4,7 +4,7 @@ use glob::glob; use itertools::Itertools; use std::ffi::OsStr; use std::fs; -use std::path::Path; +use std::path::{Path, PathBuf}; use tracing::info; const DEFAULT_EDITION: &str = "2021"; @@ -80,13 +80,12 @@ fn dump_nightly_toolchain() -> anyhow::Result<()> { Ok(()) } -fn set_sources(config: &mut Config) -> anyhow::Result<()> { +fn get_sources() -> anyhow::Result> { let path_iterator = glob("**/*.rs").context("globbing test sources")?; - config.inputs = path_iterator + path_iterator .filter(|f| f.is_err() || !f.as_ref().unwrap().starts_with("target")) .collect::, _>>() - .context("fetching test sources")?; - Ok(()) + .context("fetching test sources") } fn cargo_check(config: &Config) -> anyhow::Result<()> { @@ -105,9 +104,9 @@ fn cargo_check(config: &Config) -> anyhow::Result<()> { } } -pub(crate) fn prepare(config: &mut Config) -> anyhow::Result<()> { +pub(crate) fn prepare(config: &Config) -> anyhow::Result> { dump_lib()?; - set_sources(config)?; + let inputs = get_sources()?; let edition = config.qltest_edition.as_deref().unwrap_or(DEFAULT_EDITION); dump_cargo_manifest(&config.qltest_dependencies, edition)?; if config.qltest_use_nightly { @@ -116,5 +115,5 @@ pub(crate) fn prepare(config: &mut Config) -> anyhow::Result<()> { if config.qltest_cargo_check { cargo_check(config)?; } - Ok(()) + Ok(inputs) } diff --git a/rust/extractor/src/rust_analyzer.rs b/rust/extractor/src/rust_analyzer.rs index 25d88ec5ce6b..d3129af12796 100644 --- a/rust/extractor/src/rust_analyzer.rs +++ b/rust/extractor/src/rust_analyzer.rs @@ -217,6 +217,12 @@ fn workspace_members_match(workspace_dir: &AbsPath, members: &[String], target: }) } +/// Finds an enclosing Cargo workspace that includes `manifest`. That is, its +/// `members` patterns include the manifest's directory and its `exclude` +/// patterns do not. +/// +/// Returns `None` if the manifest itself defines a workspace, is not a Cargo +/// manifest, cannot be loaded, or has no matching workspace. fn find_workspace(reader: &mut TomlReader, manifest: &ProjectManifest) -> Option { let ProjectManifest::CargoToml(cargo) = manifest else { return None; @@ -224,12 +230,13 @@ fn find_workspace(reader: &mut TomlReader, manifest: &ProjectManifest) -> Option let parsed_cargo = reader.read(cargo).ok()?; if parsed_cargo.workspace.is_some() { debug!("{cargo} is a workspace"); - return Some(manifest.clone()); + return None; } let Some(parent_dir) = cargo.parent().parent() else { warn!("no parent dir for {cargo}"); return None; }; + // Search upward from `parent_dir` for manifest files. let discovered = ProjectManifest::discover(parent_dir) .map_err(|e| { error!( @@ -240,25 +247,22 @@ fn find_workspace(reader: &mut TomlReader, manifest: &ProjectManifest) -> Option }) .ok()?; discovered - .iter() - .find_map(|it| match it { - ProjectManifest::CargoToml(other) - if cargo.starts_with(other.parent()) - && reader.read(other).is_ok_and(|it| { - it.workspace.as_ref().is_some_and(|w| { - workspace_members_match(other.parent(), &w.members, cargo.parent()) - && !workspace_members_match( - other.parent(), - &w.exclude, - cargo.parent(), - ) - }) - }) => + .into_iter() + .find(|it| { + if let ProjectManifest::CargoToml(other) = it + && cargo.starts_with(other.parent()) + && reader.read(other).is_ok_and(|it| { + it.workspace.as_ref().is_some_and(|w| { + workspace_members_match(other.parent(), &w.members, cargo.parent()) + && !workspace_members_match(other.parent(), &w.exclude, cargo.parent()) + }) + }) { debug!("found workspace {other} containing {cargo}"); - Some(it.clone()) + true + } else { + false } - _ => None, }) .or_else(|| { debug!("no workspace found for {cargo}"); diff --git a/rust/extractor/src/util.rs b/rust/extractor/src/util.rs new file mode 100644 index 000000000000..a12ca6de74a1 --- /dev/null +++ b/rust/extractor/src/util.rs @@ -0,0 +1,15 @@ +use std::cmp::Ordering; + +/// Compares options using a custom comparator, with `None` ordered before `Some`. +pub(crate) fn cmp_option_by( + left: &Option, + right: &Option, + compare: impl FnOnce(&T, &T) -> Ordering, +) -> Ordering { + match (left, right) { + (Some(left), Some(right)) => compare(left, right), + (Some(_), None) => Ordering::Greater, + (None, Some(_)) => Ordering::Less, + (None, None) => Ordering::Equal, + } +} diff --git a/rust/ql/integration-tests/dependency-features/.cargo/config.toml b/rust/ql/integration-tests/dependency-features/.cargo/config.toml new file mode 100644 index 000000000000..6f5d1edd7231 --- /dev/null +++ b/rust/ql/integration-tests/dependency-features/.cargo/config.toml @@ -0,0 +1,7 @@ +# Add a source definition backed by the directories in "dependencies" +[source.test-dependencies] +directory = "dependencies" + +# Map crates.io to our local source definition +[source.crates-io] +replace-with = "test-dependencies" diff --git a/rust/ql/integration-tests/dependency-features/dependencies/alpha/.cargo-checksum.json b/rust/ql/integration-tests/dependency-features/dependencies/alpha/.cargo-checksum.json new file mode 100644 index 000000000000..09bf61c6fa41 --- /dev/null +++ b/rust/ql/integration-tests/dependency-features/dependencies/alpha/.cargo-checksum.json @@ -0,0 +1 @@ +{"files": {}, "package": null} diff --git a/rust/ql/integration-tests/dependency-features/dependencies/alpha/Cargo.toml b/rust/ql/integration-tests/dependency-features/dependencies/alpha/Cargo.toml new file mode 100644 index 000000000000..151c6e5949f1 --- /dev/null +++ b/rust/ql/integration-tests/dependency-features/dependencies/alpha/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "alpha" +version = "0.1.0" +edition = "2024" + +[features] +a = [] +b = [] diff --git a/rust/ql/integration-tests/dependency-features/dependencies/alpha/src/lib.rs b/rust/ql/integration-tests/dependency-features/dependencies/alpha/src/lib.rs new file mode 100644 index 000000000000..70d16610593c --- /dev/null +++ b/rust/ql/integration-tests/dependency-features/dependencies/alpha/src/lib.rs @@ -0,0 +1,27 @@ +#[cfg(all(feature = "a", feature = "b"))] +pub fn a() {} + +#[cfg(all(feature = "a", not(feature = "b")))] +mod only_a; + +#[cfg(all(feature = "a", not(feature = "b")))] +pub use only_a::a; + +#[cfg(feature = "b")] +pub fn b() {} + +#[cfg(feature = "b")] +#[macro_export] +macro_rules! invoke { + () => { + $crate::b() + }; +} + +#[cfg(not(feature = "b"))] +#[macro_export] +macro_rules! invoke { + () => { + $crate::a() + }; +} diff --git a/rust/ql/integration-tests/dependency-features/dependencies/alpha/src/only_a.rs b/rust/ql/integration-tests/dependency-features/dependencies/alpha/src/only_a.rs new file mode 100644 index 000000000000..6dcbbb1ccfe8 --- /dev/null +++ b/rust/ql/integration-tests/dependency-features/dependencies/alpha/src/only_a.rs @@ -0,0 +1,7 @@ +macro_rules! define_a { + () => { + pub fn a() {} + }; +} + +define_a!(); diff --git a/rust/ql/integration-tests/dependency-features/dependencies/beta/.cargo-checksum.json b/rust/ql/integration-tests/dependency-features/dependencies/beta/.cargo-checksum.json new file mode 100644 index 000000000000..09bf61c6fa41 --- /dev/null +++ b/rust/ql/integration-tests/dependency-features/dependencies/beta/.cargo-checksum.json @@ -0,0 +1 @@ +{"files": {}, "package": null} diff --git a/rust/ql/integration-tests/dependency-features/dependencies/beta/Cargo.toml b/rust/ql/integration-tests/dependency-features/dependencies/beta/Cargo.toml new file mode 100644 index 000000000000..b9c6e4f70445 --- /dev/null +++ b/rust/ql/integration-tests/dependency-features/dependencies/beta/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "beta" +version = "0.1.0" +edition = "2024" + +[features] +a = [] +b = [] diff --git a/rust/ql/integration-tests/dependency-features/dependencies/beta/src/lib.rs b/rust/ql/integration-tests/dependency-features/dependencies/beta/src/lib.rs new file mode 100644 index 000000000000..c2aafb3b633e --- /dev/null +++ b/rust/ql/integration-tests/dependency-features/dependencies/beta/src/lib.rs @@ -0,0 +1,21 @@ +#[cfg(feature = "a")] +pub fn a() {} + +#[cfg(feature = "b")] +pub fn b() {} + +#[cfg(feature = "b")] +#[macro_export] +macro_rules! invoke { + () => { + $crate::b() + }; +} + +#[cfg(not(feature = "b"))] +#[macro_export] +macro_rules! invoke { + () => { + $crate::a() + }; +} diff --git a/rust/ql/integration-tests/dependency-features/functions.ql b/rust/ql/integration-tests/dependency-features/functions.ql new file mode 100644 index 000000000000..a475c9258072 --- /dev/null +++ b/rust/ql/integration-tests/dependency-features/functions.ql @@ -0,0 +1,13 @@ +import rust + +from Call c, string target +where + c.getFile().getRelativePath() in [ + "first/src/lib.rs", "second/src/lib.rs", "src/lib.rs", "build.rs" + ] and + ( + target = c.getStaticTarget().getCanonicalPath() + or + not exists(c.getStaticTarget()) and target = "" + ) +select c, target diff --git a/rust/ql/integration-tests/dependency-features/functions.rich.expected b/rust/ql/integration-tests/dependency-features/functions.rich.expected new file mode 100644 index 000000000000..796c4e1aae87 --- /dev/null +++ b/rust/ql/integration-tests/dependency-features/functions.rich.expected @@ -0,0 +1,4 @@ +| source/first/src/lib.rs:2:5:2:18 | ...::b(...) | alpha::b | +| source/first/src/lib.rs:3:5:3:17 | ...::a(...) | beta::a | +| source/second/src/lib.rs:2:5:2:18 | ...::a(...) | alpha::a | +| source/second/src/lib.rs:3:5:3:17 | ...::b(...) | beta::b | diff --git a/rust/ql/integration-tests/dependency-features/functions.rich.reversed.expected b/rust/ql/integration-tests/dependency-features/functions.rich.reversed.expected new file mode 100644 index 000000000000..f352f77ba179 --- /dev/null +++ b/rust/ql/integration-tests/dependency-features/functions.rich.reversed.expected @@ -0,0 +1,4 @@ +| source/first/src/lib.rs:2:5:2:18 | ...::a(...) | alpha::a | +| source/first/src/lib.rs:3:5:3:17 | ...::b(...) | beta::b | +| source/second/src/lib.rs:2:5:2:18 | ...::b(...) | alpha::b | +| source/second/src/lib.rs:3:5:3:17 | ...::a(...) | beta::a | diff --git a/rust/ql/integration-tests/dependency-features/functions.tie.expected b/rust/ql/integration-tests/dependency-features/functions.tie.expected new file mode 100644 index 000000000000..31cbfba529fa --- /dev/null +++ b/rust/ql/integration-tests/dependency-features/functions.tie.expected @@ -0,0 +1,4 @@ +| source/first/src/lib.rs:2:5:2:18 | ...::a(...) | | +| source/first/src/lib.rs:3:5:3:17 | ...::b(...) | beta::b | +| source/second/src/lib.rs:2:5:2:18 | ...::b(...) | alpha::b | +| source/second/src/lib.rs:3:5:3:17 | ...::a(...) | | diff --git a/rust/ql/integration-tests/dependency-features/functions.tie.reversed.expected b/rust/ql/integration-tests/dependency-features/functions.tie.reversed.expected new file mode 100644 index 000000000000..a4475eb87c83 --- /dev/null +++ b/rust/ql/integration-tests/dependency-features/functions.tie.reversed.expected @@ -0,0 +1,4 @@ +| source/first/src/lib.rs:2:5:2:18 | ...::b(...) | alpha::b | +| source/first/src/lib.rs:3:5:3:17 | ...::a(...) | | +| source/second/src/lib.rs:2:5:2:18 | ...::a(...) | | +| source/second/src/lib.rs:3:5:3:17 | ...::b(...) | beta::b | diff --git a/rust/ql/integration-tests/dependency-features/inactive-module.ql b/rust/ql/integration-tests/dependency-features/inactive-module.ql new file mode 100644 index 000000000000..9096a1ac43c6 --- /dev/null +++ b/rust/ql/integration-tests/dependency-features/inactive-module.ql @@ -0,0 +1,5 @@ +import rust + +from Function f +where f.getFile().getBaseName() = "only_a.rs" +select f, f.getName() diff --git a/rust/ql/integration-tests/dependency-features/inactive-module.rich.expected b/rust/ql/integration-tests/dependency-features/inactive-module.rich.expected new file mode 100644 index 000000000000..377f38232a12 --- /dev/null +++ b/rust/ql/integration-tests/dependency-features/inactive-module.rich.expected @@ -0,0 +1 @@ +| dependencies/alpha/src/only_a.rs:7:1:7:9 | fn a | dependencies/alpha/src/only_a.rs:7:1:7:9 | a | diff --git a/rust/ql/integration-tests/dependency-features/inactive-module.rich.reversed.expected b/rust/ql/integration-tests/dependency-features/inactive-module.rich.reversed.expected new file mode 100644 index 000000000000..377f38232a12 --- /dev/null +++ b/rust/ql/integration-tests/dependency-features/inactive-module.rich.reversed.expected @@ -0,0 +1 @@ +| dependencies/alpha/src/only_a.rs:7:1:7:9 | fn a | dependencies/alpha/src/only_a.rs:7:1:7:9 | a | diff --git a/rust/ql/integration-tests/dependency-features/inactive-module.tie.expected b/rust/ql/integration-tests/dependency-features/inactive-module.tie.expected new file mode 100644 index 000000000000..377f38232a12 --- /dev/null +++ b/rust/ql/integration-tests/dependency-features/inactive-module.tie.expected @@ -0,0 +1 @@ +| dependencies/alpha/src/only_a.rs:7:1:7:9 | fn a | dependencies/alpha/src/only_a.rs:7:1:7:9 | a | diff --git a/rust/ql/integration-tests/dependency-features/inactive-module.tie.reversed.expected b/rust/ql/integration-tests/dependency-features/inactive-module.tie.reversed.expected new file mode 100644 index 000000000000..377f38232a12 --- /dev/null +++ b/rust/ql/integration-tests/dependency-features/inactive-module.tie.reversed.expected @@ -0,0 +1 @@ +| dependencies/alpha/src/only_a.rs:7:1:7:9 | fn a | dependencies/alpha/src/only_a.rs:7:1:7:9 | a | diff --git a/rust/ql/integration-tests/dependency-features/source/first/src/lib.rs b/rust/ql/integration-tests/dependency-features/source/first/src/lib.rs new file mode 100644 index 000000000000..a4a49f20b4ce --- /dev/null +++ b/rust/ql/integration-tests/dependency-features/source/first/src/lib.rs @@ -0,0 +1,4 @@ +pub fn emit() { + alpha::invoke!(); + beta::invoke!(); +} diff --git a/rust/ql/integration-tests/dependency-features/source/second/src/lib.rs b/rust/ql/integration-tests/dependency-features/source/second/src/lib.rs new file mode 100644 index 000000000000..a4a49f20b4ce --- /dev/null +++ b/rust/ql/integration-tests/dependency-features/source/second/src/lib.rs @@ -0,0 +1,4 @@ +pub fn emit() { + alpha::invoke!(); + beta::invoke!(); +} diff --git a/rust/ql/integration-tests/dependency-features/test_dependency_features.py b/rust/ql/integration-tests/dependency-features/test_dependency_features.py new file mode 100644 index 000000000000..a7da594e6908 --- /dev/null +++ b/rust/ql/integration-tests/dependency-features/test_dependency_features.py @@ -0,0 +1,82 @@ +import json +from textwrap import dedent + +import commands +import pytest + + +@pytest.mark.parametrize( + ("configurations", "reverse"), + [ + pytest.param( + configurations, + reverse, + marks=pytest.mark.ql_test( + expected=f".{expected}{'.reversed' if reverse else ''}.expected" + ), + id=f"{name}{'-reversed' if reverse else ''}", + ) + for name, expected, configurations in [ + ("more-features", "rich", [(["a", "b"], ["a"]), (["a"], ["a", "b"])]), + ("equal-features", "tie", [(["a"], ["b"]), (["b"], ["a"])]), + ] + for reverse in [False, True] + ], +) +def test_dependency_features(codeql, rust, cwd, configurations, reverse): + """ + Two independent workspaces, `source/first` and `source/second`, share the + local dependencies `alpha` and `beta`, but enable different Cargo features + (their `Cargo.toml` are created in this test). + + Below is an overview of the files in the test setup. + ``` + dependency-features/ + |-- dependencies/ + | |-- alpha/ + | | |-- Cargo.toml + | | `-- src/lib.rs # feature-gated functions and invoke! macro + | `-- beta/ + | |-- Cargo.toml + | `-- src/lib.rs # feature-gated functions and invoke! macro + |-- source/ + | |-- first/ + | | |-- Cargo.toml # generated by this test for each configuration + | | `-- src/lib.rs # calls alpha::invoke! and beta::invoke! + | `-- second/ + | |-- Cargo.toml # generated by this test for each configuration + | `-- src/lib.rs # calls alpha::invoke! and beta::invoke! + ``` + + Each `src/lib.rs` file calls a macro from each dependency. The macros expand + to different calls depending on the enabled features. The `functions.ql` + query checks which calls and targets are extracted for the `src/lib.rs` + files. + + Alpha's `only_a` module is disabled by feature `b`. Its item macro must still + be expanded using a configuration in which the module is enabled, even when + a richer configuration wins for alpha's other files. + """ + if reverse: + configurations = configurations[::-1] + for workspace, features in zip(["first", "second"], configurations): + manifest = cwd / "source" / workspace / "Cargo.toml" + manifest.write_text( + dedent(f"""\ + [package] + name = "{workspace}" + version = "0.1.0" + edition = "2024" + + [workspace] + + [dependencies] + """) + + "\n".join( + f'{name} = {{ version = "=0.1.0", features = {json.dumps(enabled)} }}' + for name, enabled in zip(["alpha", "beta"], features) + ) + + "\n" + ) + commands.run(f'cargo check --quiet --manifest-path "{manifest}"') + codeql.database.create(source_root="source") diff --git a/rust/ql/integration-tests/query-suite/rust-code-scanning.qls.expected b/rust/ql/integration-tests/query-suite/rust-code-scanning.qls.expected index d7611c2993b8..609045ce523a 100644 --- a/rust/ql/integration-tests/query-suite/rust-code-scanning.qls.expected +++ b/rust/ql/integration-tests/query-suite/rust-code-scanning.qls.expected @@ -20,6 +20,7 @@ ql/rust/ql/src/queries/security/CWE-312/CleartextStorageDatabase.ql ql/rust/ql/src/queries/security/CWE-319/UseOfHttp.ql ql/rust/ql/src/queries/security/CWE-327/BrokenCryptoAlgorithm.ql ql/rust/ql/src/queries/security/CWE-327/WeakSensitiveDataHashing.ql +ql/rust/ql/src/queries/security/CWE-502/UnsafeDeserialization.ql ql/rust/ql/src/queries/security/CWE-614/InsecureCookie.ql ql/rust/ql/src/queries/security/CWE-770/UncontrolledAllocationSize.ql ql/rust/ql/src/queries/security/CWE-798/HardcodedCryptographicValue.ql diff --git a/rust/ql/integration-tests/query-suite/rust-security-and-quality.qls.expected b/rust/ql/integration-tests/query-suite/rust-security-and-quality.qls.expected index 6c8d1fe5897f..61f9ef2ea992 100644 --- a/rust/ql/integration-tests/query-suite/rust-security-and-quality.qls.expected +++ b/rust/ql/integration-tests/query-suite/rust-security-and-quality.qls.expected @@ -21,6 +21,7 @@ ql/rust/ql/src/queries/security/CWE-312/CleartextStorageDatabase.ql ql/rust/ql/src/queries/security/CWE-319/UseOfHttp.ql ql/rust/ql/src/queries/security/CWE-327/BrokenCryptoAlgorithm.ql ql/rust/ql/src/queries/security/CWE-327/WeakSensitiveDataHashing.ql +ql/rust/ql/src/queries/security/CWE-502/UnsafeDeserialization.ql ql/rust/ql/src/queries/security/CWE-614/InsecureCookie.ql ql/rust/ql/src/queries/security/CWE-696/BadCtorInitialization.ql ql/rust/ql/src/queries/security/CWE-770/UncontrolledAllocationSize.ql diff --git a/rust/ql/integration-tests/query-suite/rust-security-extended.qls.expected b/rust/ql/integration-tests/query-suite/rust-security-extended.qls.expected index f41a12fae037..df665c496fdd 100644 --- a/rust/ql/integration-tests/query-suite/rust-security-extended.qls.expected +++ b/rust/ql/integration-tests/query-suite/rust-security-extended.qls.expected @@ -21,6 +21,7 @@ ql/rust/ql/src/queries/security/CWE-312/CleartextStorageDatabase.ql ql/rust/ql/src/queries/security/CWE-319/UseOfHttp.ql ql/rust/ql/src/queries/security/CWE-327/BrokenCryptoAlgorithm.ql ql/rust/ql/src/queries/security/CWE-327/WeakSensitiveDataHashing.ql +ql/rust/ql/src/queries/security/CWE-502/UnsafeDeserialization.ql ql/rust/ql/src/queries/security/CWE-614/InsecureCookie.ql ql/rust/ql/src/queries/security/CWE-770/UncontrolledAllocationSize.ql ql/rust/ql/src/queries/security/CWE-798/HardcodedCryptographicValue.ql diff --git a/rust/ql/integration-tests/workspace-with-glob/steps.expected b/rust/ql/integration-tests/workspace-with-glob/steps.expected index 4b0e6ed828b6..3ea9ee61bed3 100644 --- a/rust/ql/integration-tests/workspace-with-glob/steps.expected +++ b/rust/ql/integration-tests/workspace-with-glob/steps.expected @@ -6,6 +6,7 @@ | lib/src/lib.rs:0:0:0:0 | Extract(lib/src/lib.rs) | | lib/src/lib.rs:0:0:0:0 | Parse(lib/src/lib.rs) | | other/Cargo.toml:0:0:0:0 | LoadManifest(other/Cargo.toml) | +| other/Cargo.toml:0:0:0:0 | LoadManifest(other/Cargo.toml) | | other/src/lib.rs:0:0:0:0 | Extract(other/src/lib.rs) | | other/src/lib.rs:0:0:0:0 | LoadSource(other/src/lib.rs) | | other/src/lib.rs:0:0:0:0 | Parse(other/src/lib.rs) | diff --git a/rust/ql/lib/change-notes/2026-10-30-trusted-schema-not-sensitive.md b/rust/ql/lib/change-notes/2026-10-30-trusted-schema-not-sensitive.md new file mode 100644 index 000000000000..9a51edefa011 --- /dev/null +++ b/rust/ql/lib/change-notes/2026-10-30-trusted-schema-not-sensitive.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The sensitive data heuristics treat names built on `trusted_schema`, such as SQLite's `set_trusted_schema` setting, as non-sensitive. This removes false positive results from queries that use the sensitive data library (for example `rust/cleartext-logging`). diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll index 60ec0fca820f..d6cf5aac1f95 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll @@ -11,6 +11,7 @@ private import rust private import SsaImpl as SsaImpl private import codeql.rust.controlflow.internal.Scope as Scope private import codeql.rust.elements.internal.CallExprImpl::Impl as CallExprImpl +private import codeql.rust.elements.internal.VariableImpl::Impl as VariableImpl private import codeql.rust.internal.PathResolution private import codeql.rust.controlflow.ControlFlowGraph private import codeql.rust.dataflow.Ssa @@ -230,7 +231,16 @@ module LocalFlow { nodeTo.asPat() = match.getAnArm().getPat() ) or - nodeFrom.asExpr() = nodeTo.asExpr().(ParenExpr).getExpr() + exists(ParenExpr pe, Expr e | + e = pe.getExpr() and + if VariableImpl::assignmentOperationDescendant(_, pe) + then nodeTo.asExpr() = e and nodeFrom.asExpr() = pe + else ( + nodeFrom.asExpr() = e and nodeTo.asExpr() = pe + ) + ) + or + nodeTo.asPat() = nodeFrom.asPat().(ParenPat).getPat() } pragma[nomagic] @@ -1070,43 +1080,36 @@ module VariableCapture { final class CapturedParameter extends CapturedVariable { ParamBase p; - CapturedParameter() { p = this.getParameter() } + CapturedParameter() { this.isParameter(p) } SourceParameterNode getParameterNode() { result.getParameter() = p } } class Expr extends AstNode { - predicate hasCfgNode(BasicBlocks::BasicBlock bb, int i) { this = bb.getNode(i).getAstNode() } + predicate hasCfgNode(BasicBlocks::BasicBlock bb, int i) { + this = bb.getNode(i).getAstNode() + or + this.(ParenExpr).getExpr().(Expr).hasCfgNode(bb, i) + } } class VariableWrite extends Expr { - Expr source; CapturedVariable v; VariableWrite() { - exists(AssignmentExpr assign, Variable::VariableWriteAccess write | - this = assign and - v = write.getVariable() and - assign.getLhs() = write and - assign.getRhs() = source - ) + this = v.getName() or - this = - any(LetStmt ls | - v.getPat() = ls.getPat() and - ls.getInitializer() = source - ) + v = this.(Variable::VariableWriteAccess).getVariable() + } + + override predicate hasCfgNode(BasicBlocks::BasicBlock bb, int i) { + not this instanceof VariableWriteAccess and + super.hasCfgNode(bb, i) or - this = - any(LetExpr le | - v.getPat() = le.getPat() and - le.getScrutinee() = source - ) + this.(VariableWriteAccess).getAssignmentExpr() = bb.getNode(i).getAstNode() } CapturedVariable getVariable() { result = v } - - Expr getSource() { result = source } } class VariableRead extends Expr { @@ -1145,7 +1148,7 @@ module VariableCapture { or result.(Flow::ExprNode).getExpr() = n.asExpr() or - result.(Flow::VariableWriteSourceNode).getVariableWrite().getSource() = n.asExpr() + result.(Flow::VariableWriteSourceNode).getVariableWrite() = n.getAstNode() or result.(Flow::ExprPostUpdateNode).getExpr() = n.(PostUpdateNode).getPreUpdateNode().asExpr() or diff --git a/rust/ql/lib/codeql/rust/elements/internal/VariableImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/VariableImpl.qll index 80f2259623bb..0c2c6b158212 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/VariableImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/VariableImpl.qll @@ -310,7 +310,12 @@ module Impl { /** Holds if this variable is captured. */ predicate isCaptured() { this.getAnAccess().isCapture() } - /** Gets the parameter that introduces this variable, if any. */ + /** + * Gets the parameter that introduces this variable, if any. + * + * Note that this variable need not be a direct parameter; it could + * also be introduced through a destructuring pattern. + */ cached ParamBase getParameter() { CachedStage::ref() and @@ -319,6 +324,14 @@ module Impl { result.(Param).getPat() = getAPatAncestor*(this.getPat()) } + /** Holds if this variable corresponds directly to the parameter `p`. */ + predicate isParameter(ParamBase p) { + CachedStage::ref() and + p = this.getSelfParam() + or + p.(Param).getPat() = this.getPat() + } + /** Holds if this variable is mutable. */ predicate isMutable() { this.getPat().isMut() or this.getSelfParam().isMut() } diff --git a/rust/ql/lib/codeql/rust/frameworks/serde.model.yml b/rust/ql/lib/codeql/rust/frameworks/serde.model.yml new file mode 100644 index 000000000000..4d1f2655f07d --- /dev/null +++ b/rust/ql/lib/codeql/rust/frameworks/serde.model.yml @@ -0,0 +1,25 @@ +extensions: + - addsTo: + pack: codeql/rust-all + extensible: sinkModel + data: + # serde_json deserialization functions + - ["serde_json::de::from_str", "Argument[0]", "unsafe-deserialization", "manual"] + - ["serde_json::de::from_slice", "Argument[0]", "unsafe-deserialization", "manual"] + - ["serde_json::de::from_reader", "Argument[0]", "unsafe-deserialization", "manual"] + - ["serde_json::value::from_value", "Argument[0]", "unsafe-deserialization", "manual"] + - ["serde_json::value::from_value", "Argument[0].Field[serde_json::value::Value::String(0)]", "unsafe-deserialization", "manual"] + # bincode deserialization functions + - ["bincode::deserialize", "Argument[0]", "unsafe-deserialization", "manual"] + - ["bincode::deserialize_from", "Argument[0]", "unsafe-deserialization", "manual"] + # rmp_serde (MessagePack) deserialization functions + - ["rmp_serde::decode::from_slice", "Argument[0]", "unsafe-deserialization", "manual"] + - ["rmp_serde::decode::from_read", "Argument[0]", "unsafe-deserialization", "manual"] + # ciborium (CBOR) deserialization functions + - ["ciborium::de::from_reader", "Argument[0]", "unsafe-deserialization", "manual"] + # serde_yaml deserialization functions + - ["serde_yaml::de::from_str", "Argument[0]", "unsafe-deserialization", "manual"] + - ["serde_yaml::de::from_slice", "Argument[0]", "unsafe-deserialization", "manual"] + - ["serde_yaml::de::from_reader", "Argument[0]", "unsafe-deserialization", "manual"] + # toml deserialization + - ["toml::de::from_str", "Argument[0]", "unsafe-deserialization", "manual"] diff --git a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll index 7f3a0ae0c282..0e71f878c08f 100644 --- a/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/typeinference/TypeInference.qll @@ -2348,7 +2348,7 @@ private module Input3 implements InputSig3 { AstNode getDefiningNode() { result = this.asLocalVariable().getPat().getName() or - result = this.asLocalVariable().getParameter().(SelfParam) or + this.asLocalVariable().isParameter(result.(SelfParam)) or result = this.asConst().getName() or result = this.asStatic().getName() } diff --git a/rust/ql/lib/codeql/rust/security/UnsafeDeserializationExtensions.qll b/rust/ql/lib/codeql/rust/security/UnsafeDeserializationExtensions.qll new file mode 100644 index 000000000000..70b0c55184c0 --- /dev/null +++ b/rust/ql/lib/codeql/rust/security/UnsafeDeserializationExtensions.qll @@ -0,0 +1,64 @@ +/** + * Provides classes and predicates for reasoning about unsafe deserialization + * vulnerabilities (CWE-502). + */ + +import rust +private import codeql.rust.dataflow.DataFlow +private import codeql.rust.dataflow.FlowSink +private import codeql.rust.dataflow.FlowBarrier +private import codeql.rust.Concepts +private import codeql.rust.security.Barriers as Barriers + +/** + * Provides default sources, sinks and barriers for detecting unsafe deserialization + * vulnerabilities, as well as extension points for adding your own. + */ +module UnsafeDeserialization { + /** + * A data flow source for unsafe deserialization vulnerabilities. + */ + abstract class Source extends DataFlow::Node { } + + /** + * A data flow sink for unsafe deserialization vulnerabilities. + */ + abstract class Sink extends QuerySink::Range { + override string getSinkType() { result = "UnsafeDeserialization" } + } + + /** + * A barrier for unsafe deserialization vulnerabilities. + */ + abstract class Barrier extends DataFlow::Node { } + + /** + * An active threat-model source, considered as a flow source. + */ + private class ActiveThreatModelSourceAsSource extends Source, ActiveThreatModelSource { } + + /** + * A sink for unsafe deserialization from model data. + */ + private class ModelsAsDataSink extends Sink { + ModelsAsDataSink() { sinkNode(this, "unsafe-deserialization") } + } + + /** + * A barrier for unsafe deserialization from model data. + */ + private class ModelsAsDataBarrier extends Barrier { + ModelsAsDataBarrier() { barrierNode(this, "unsafe-deserialization") } + } + + /** + * A barrier for unsafe deserialization for nodes whose type is a numeric + * type, which is unlikely to expose any vulnerability. + */ + private class NumericTypeBarrier extends Barrier instanceof Barriers::NumericTypeBarrier { } + + private class BooleanTypeBarrier extends Barrier instanceof Barriers::BooleanTypeBarrier { } + + private class FieldlessEnumTypeBarrier extends Barrier instanceof Barriers::FieldlessEnumTypeBarrier + { } +} diff --git a/rust/ql/lib/qlpack.yml b/rust/ql/lib/qlpack.yml index 7228323921cc..7d8cfa5680a2 100644 --- a/rust/ql/lib/qlpack.yml +++ b/rust/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-all -version: 0.2.25 +version: 0.2.26-dev groups: rust extractor: rust dbscheme: rust.dbscheme diff --git a/rust/ql/src/change-notes/2026-08-11-unsafe-deserialization.md b/rust/ql/src/change-notes/2026-08-11-unsafe-deserialization.md new file mode 100644 index 000000000000..6e78b9a8606a --- /dev/null +++ b/rust/ql/src/change-notes/2026-08-11-unsafe-deserialization.md @@ -0,0 +1,4 @@ +--- +category: newQuery +--- +* Added a new query, `rust/unsafe-deserialization`, to detect deserialization of user-controlled data. diff --git a/rust/ql/src/qlpack.yml b/rust/ql/src/qlpack.yml index 91c7dd8b5e2f..b47ffadb209e 100644 --- a/rust/ql/src/qlpack.yml +++ b/rust/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-queries -version: 0.1.46 +version: 0.1.47-dev groups: - rust - queries diff --git a/rust/ql/src/queries/security/CWE-502/UnsafeDeserialization.qhelp b/rust/ql/src/queries/security/CWE-502/UnsafeDeserialization.qhelp new file mode 100644 index 000000000000..be4ec5fc583e --- /dev/null +++ b/rust/ql/src/queries/security/CWE-502/UnsafeDeserialization.qhelp @@ -0,0 +1,49 @@ + + + + +

+Deserializing untrusted data without validation can allow an attacker to cause denial of service, consume excessive resources, or in some cases execute arbitrary code. Rust's memory safety mitigates some risks, but deserializing untrusted data with libraries likeserde, bincode, or rmp-serde can still lead to panics, excessive memory allocation, or logic bugs. This is especially true when trait objects or polymorphic types are involved. + +

+ +
+ + +

+ +Avoid deserializing untrusted data with formats that allow unbounded allocation or polymorphic dispatch. Where possible, prefer formats with schema validation, such as Protocol Buffers, when processing untrusted input. +If you do use serde, consider: + +

+
    +
  • Validating input size before deserialization.
  • +
  • Using #[serde(deny_unknown_fields)] to reject unexpected data.
  • +
  • Avoiding #[typetag] or trait object deserialization with untrusted input.
  • +
  • Using bounded containers (e.g., limiting Vec length via custom deserializers).
  • +
+ +
+ + +

+In the following example, data from an HTTP request is directly deserialized without any validation. An attacker could send a crafted payload that causes excessive memory allocation or other unintended behavior. +

+ + + +

+A safer approach validates the input size and uses strict deserialization settings: +

+ + + +
+ + +
  • OWASP: Deserialization of untrusted data.
  • + +
    +
    diff --git a/rust/ql/src/queries/security/CWE-502/UnsafeDeserialization.ql b/rust/ql/src/queries/security/CWE-502/UnsafeDeserialization.ql new file mode 100644 index 000000000000..9b1a824c540c --- /dev/null +++ b/rust/ql/src/queries/security/CWE-502/UnsafeDeserialization.ql @@ -0,0 +1,42 @@ +/** + * @name Deserialization of user-controlled data + * @description Deserializing user-controlled data without validation can cause a denial of service and, in some cases, arbitrary code execution. + * code execution, denial of service, or other harmful effects. + * @kind path-problem + * @problem.severity error + * @security-severity 9.8 + * @precision high + * @id rust/unsafe-deserialization + * @tags security + * external/cwe/cwe-502 + */ + +import rust +import codeql.rust.dataflow.DataFlow +import codeql.rust.dataflow.TaintTracking +import codeql.rust.security.UnsafeDeserializationExtensions + +/** + * A taint configuration for detecting unsafe deserialization vulnerabilities. + */ +module UnsafeDeserializationConfig implements DataFlow::ConfigSig { + import UnsafeDeserialization + + predicate isSource(DataFlow::Node node) { node instanceof Source } + + predicate isSink(DataFlow::Node node) { node instanceof Sink } + + predicate isBarrier(DataFlow::Node barrier) { barrier instanceof Barrier } + + predicate observeDiffInformedIncrementalMode() { any() } +} + +module UnsafeDeserializationFlow = TaintTracking::Global; + +import UnsafeDeserializationFlow::PathGraph + +from UnsafeDeserializationFlow::PathNode sourceNode, UnsafeDeserializationFlow::PathNode sinkNode +where UnsafeDeserializationFlow::flowPath(sourceNode, sinkNode) +select sinkNode.getNode(), sourceNode, sinkNode, + "This deserialization operation processes $@ without validation.", sourceNode.getNode(), + "user-provided data" diff --git a/rust/ql/src/queries/security/CWE-502/UnsafeDeserializationBad.rs b/rust/ql/src/queries/security/CWE-502/UnsafeDeserializationBad.rs new file mode 100644 index 000000000000..8e4f2c6b2c0a --- /dev/null +++ b/rust/ql/src/queries/security/CWE-502/UnsafeDeserializationBad.rs @@ -0,0 +1,12 @@ +use serde::Deserialize; + +#[derive(Deserialize)] +struct UserData { + name: String, + items: Vec, +} + +fn handle_request(body: &[u8]) -> UserData { + // BAD: deserializing user-controlled data without size validation + serde_json::from_slice(body).unwrap() +} diff --git a/rust/ql/src/queries/security/CWE-502/UnsafeDeserializationGood.rs b/rust/ql/src/queries/security/CWE-502/UnsafeDeserializationGood.rs new file mode 100644 index 000000000000..a7d69fb48a56 --- /dev/null +++ b/rust/ql/src/queries/security/CWE-502/UnsafeDeserializationGood.rs @@ -0,0 +1,30 @@ +use serde::Deserialize; + +const MAX_BODY_SIZE: usize = 1024 * 1024; // 1 MB limit + +#[derive(Deserialize)] +#[serde(deny_unknown_fields)] +struct UserData { + name: String, + #[serde(deserialize_with = "bounded_vec")] + items: Vec, +} + +fn bounded_vec<'de, D>(deserializer: D) -> Result, D::Error> +where + D: serde::Deserializer<'de>, +{ + let v = Vec::::deserialize(deserializer)?; + if v.len() > 100 { + return Err(serde::de::Error::custom("too many items")); + } + Ok(v) +} + +fn handle_request(body: &[u8]) -> Result { + // GOOD: validate input size before deserialization, use bounded containers + if body.len() > MAX_BODY_SIZE { + return Err("payload too large".to_string()); + } + serde_json::from_slice(body).map_err(|e| e.to_string()) +} diff --git a/rust/ql/src/queries/summary/Stats.qll b/rust/ql/src/queries/summary/Stats.qll index a9c040e4b3c7..861aedfe6cc0 100644 --- a/rust/ql/src/queries/summary/Stats.qll +++ b/rust/ql/src/queries/summary/Stats.qll @@ -33,6 +33,7 @@ private import codeql.rust.security.UncontrolledAllocationSizeExtensions private import codeql.rust.security.UseOfHttpExtensions private import codeql.rust.security.WeakSensitiveDataHashingExtensions private import codeql.rust.security.XssExtensions +private import codeql.rust.security.UnsafeDeserializationExtensions /** * Gets a count of the total number of lines of code in the database. diff --git a/rust/ql/test/library-tests/dataflow/lambdas/inline-flow.expected b/rust/ql/test/library-tests/dataflow/lambdas/inline-flow.expected index 6b9075dd7b0e..0b8ed1253aa4 100644 --- a/rust/ql/test/library-tests/dataflow/lambdas/inline-flow.expected +++ b/rust/ql/test/library-tests/dataflow/lambdas/inline-flow.expected @@ -1,4 +1,6 @@ models +| 1 | Summary: <& as core::ops::deref::Deref>::deref; Argument[self].Reference; ReturnValue; value | +| 2 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | edges | main.rs:10:20:10:52 | if cond {...} else {...} | main.rs:11:10:11:16 | f(...) | provenance | | | main.rs:10:30:10:39 | source(...) | main.rs:10:20:10:52 | if cond {...} else {...} | provenance | | @@ -6,71 +8,92 @@ edges | main.rs:22:9:22:9 | a | main.rs:23:13:23:13 | a | provenance | | | main.rs:22:13:22:22 | source(...) | main.rs:22:9:22:9 | a | provenance | | | main.rs:23:13:23:13 | a | main.rs:15:20:15:23 | ... | provenance | | -| main.rs:27:20:27:23 | ... | main.rs:27:26:27:52 | if cond {...} else {...} | provenance | | -| main.rs:28:9:28:9 | a | main.rs:29:21:29:21 | a | provenance | | -| main.rs:28:13:28:22 | source(...) | main.rs:28:9:28:9 | a | provenance | | -| main.rs:29:9:29:9 | b | main.rs:30:10:30:10 | b | provenance | | -| main.rs:29:13:29:22 | f(...) | main.rs:29:9:29:9 | b | provenance | | -| main.rs:29:21:29:21 | a | main.rs:27:20:27:23 | ... | provenance | | -| main.rs:29:21:29:21 | a | main.rs:29:13:29:22 | f(...) | provenance | | -| main.rs:37:16:37:25 | source(...) | main.rs:39:5:39:5 | [post] f : ... => .. [captured capt] | provenance | | -| main.rs:39:5:39:5 | [post] f : ... => .. [captured capt] | main.rs:40:10:40:13 | capt | provenance | | -| main.rs:39:5:39:5 | [post] f : ... => .. [captured capt] | main.rs:44:5:44:5 | g [captured capt] | provenance | | -| main.rs:44:5:44:5 | g [captured capt] | main.rs:42:14:42:17 | capt | provenance | | -| main.rs:47:29:49:1 | { ... } | main.rs:57:10:57:12 | f(...) | provenance | | -| main.rs:48:5:48:14 | source(...) | main.rs:47:29:49:1 | { ... } | provenance | | -| main.rs:51:17:51:25 | ...: i64 | main.rs:52:10:52:13 | data | provenance | | -| main.rs:62:9:62:9 | a | main.rs:63:7:63:7 | a | provenance | | -| main.rs:62:13:62:22 | source(...) | main.rs:62:9:62:9 | a | provenance | | -| main.rs:63:7:63:7 | a | main.rs:51:17:51:25 | ...: i64 | provenance | | -| main.rs:66:24:66:32 | ...: i64 | main.rs:66:42:72:1 | { ... } | provenance | | -| main.rs:76:9:76:9 | a | main.rs:77:21:77:21 | a | provenance | | -| main.rs:76:13:76:22 | source(...) | main.rs:76:9:76:9 | a | provenance | | -| main.rs:77:9:77:9 | b | main.rs:78:10:78:10 | b | provenance | | -| main.rs:77:13:77:22 | f(...) | main.rs:77:9:77:9 | b | provenance | | -| main.rs:77:21:77:21 | a | main.rs:66:24:66:32 | ...: i64 | provenance | | -| main.rs:77:21:77:21 | a | main.rs:77:13:77:22 | f(...) | provenance | | -| main.rs:81:28:81:33 | ...: i64 | main.rs:82:7:82:7 | x | provenance | | -| main.rs:81:28:81:33 | ...: i64 | main.rs:82:7:82:7 | x | provenance | | -| main.rs:81:28:81:33 | ...: i64 | main.rs:82:7:82:7 | x | provenance | | -| main.rs:82:7:82:7 | x | main.rs:87:12:87:12 | ... | provenance | | -| main.rs:82:7:82:7 | x | main.rs:89:12:89:12 | ... | provenance | | -| main.rs:82:7:82:7 | x | main.rs:99:17:99:17 | ... | provenance | | -| main.rs:82:7:82:7 | x | main.rs:101:17:101:17 | ... | provenance | | -| main.rs:86:9:86:9 | a | main.rs:87:24:87:24 | a | provenance | | -| main.rs:86:13:86:22 | source(...) | main.rs:86:9:86:9 | a | provenance | | -| main.rs:87:12:87:12 | ... | main.rs:87:20:87:20 | x | provenance | | -| main.rs:87:24:87:24 | a | main.rs:81:28:81:33 | ...: i64 | provenance | | -| main.rs:88:9:88:9 | b | main.rs:89:24:89:24 | b | provenance | | -| main.rs:88:13:88:22 | source(...) | main.rs:88:9:88:9 | b | provenance | | -| main.rs:89:12:89:12 | ... | main.rs:89:20:89:20 | x | provenance | | -| main.rs:89:24:89:24 | b | main.rs:81:28:81:33 | ...: i64 | provenance | | -| main.rs:93:33:93:38 | ...: i64 | main.rs:94:14:94:14 | x | provenance | | -| main.rs:94:14:94:14 | x | main.rs:81:28:81:33 | ...: i64 | provenance | | -| main.rs:98:9:98:9 | a | main.rs:99:29:99:29 | a | provenance | | -| main.rs:98:13:98:22 | source(...) | main.rs:98:9:98:9 | a | provenance | | -| main.rs:99:17:99:17 | ... | main.rs:99:25:99:25 | x | provenance | | -| main.rs:99:29:99:29 | a | main.rs:93:33:93:38 | ...: i64 | provenance | | -| main.rs:100:9:100:9 | b | main.rs:101:29:101:29 | b | provenance | | -| main.rs:100:13:100:22 | source(...) | main.rs:100:9:100:9 | b | provenance | | -| main.rs:101:17:101:17 | ... | main.rs:101:25:101:25 | x | provenance | | -| main.rs:101:29:101:29 | b | main.rs:93:33:93:38 | ...: i64 | provenance | | -| main.rs:109:13:109:22 | source(...) | main.rs:110:26:110:36 | \|...\| ... : ... => .. [captured a] | provenance | | -| main.rs:109:13:109:22 | source(...) | main.rs:111:26:111:36 | \|...\| ... : ... => .. [captured a] | provenance | | -| main.rs:109:13:109:22 | source(...) | main.rs:112:26:112:36 | \|...\| ... : ... => .. [captured a] | provenance | | -| main.rs:109:13:109:22 | source(...) | main.rs:113:26:113:36 | \|...\| ... : ... => .. [captured a] | provenance | | -| main.rs:110:26:110:36 | \|...\| ... : ... => .. [captured a] | main.rs:110:35:110:35 | a | provenance | heuristic-callback | -| main.rs:111:26:111:36 | \|...\| ... : ... => .. [captured a] | main.rs:111:35:111:35 | a | provenance | heuristic-callback | -| main.rs:112:26:112:36 | \|...\| ... : ... => .. [captured a] | main.rs:112:35:112:35 | a | provenance | heuristic-callback | -| main.rs:113:26:113:36 | \|...\| ... : ... => .. [captured a] | main.rs:113:35:113:35 | a | provenance | heuristic-callback | -| main.rs:120:30:120:40 | source(...) | main.rs:121:14:121:25 | await future | provenance | | -| main.rs:125:20:125:30 | source(...) | main.rs:126:9:128:9 | { ... } : ... => .. [captured data] | provenance | | -| main.rs:126:9:128:9 | { ... } : ... => .. [captured data] | main.rs:127:18:127:21 | data | provenance | | -| main.rs:133:20:133:30 | source(...) | main.rs:135:14:135:19 | future [captured data] | provenance | | -| main.rs:135:14:135:19 | future [captured data] | main.rs:134:30:134:33 | data | provenance | | -| main.rs:135:14:135:19 | future [captured data] | main.rs:135:14:135:25 | await future | provenance | | -| main.rs:141:9:143:9 | [post] { ... } : ... => .. [captured captured] | main.rs:145:14:145:21 | captured | provenance | | -| main.rs:142:24:142:34 | source(...) | main.rs:141:9:143:9 | [post] { ... } : ... => .. [captured captured] | provenance | | +| main.rs:27:9:27:18 | TuplePat [tuple.0] | main.rs:27:10:27:14 | mut x | provenance | | +| main.rs:27:10:27:14 | mut x | main.rs:28:6:28:6 | x | provenance | | +| main.rs:27:22:27:35 | TupleExpr [tuple.0] | main.rs:27:9:27:18 | TuplePat [tuple.0] | provenance | | +| main.rs:27:23:27:31 | source(...) | main.rs:27:22:27:35 | TupleExpr [tuple.0] | provenance | | +| main.rs:28:6:28:6 | x | main.rs:29:14:29:14 | x | provenance | | +| main.rs:33:9:33:16 | TuplePat [tuple.0] | main.rs:33:10:33:14 | ref x | provenance | | +| main.rs:33:10:33:14 | ref x | main.rs:33:14:33:14 | x [&ref] | provenance | | +| main.rs:33:14:33:14 | x [&ref] | main.rs:34:15:34:15 | x [&ref] | provenance | | +| main.rs:33:20:33:31 | TupleExpr [tuple.0] | main.rs:33:9:33:16 | TuplePat [tuple.0] | provenance | | +| main.rs:33:21:33:29 | source(...) | main.rs:33:20:33:31 | TupleExpr [tuple.0] | provenance | | +| main.rs:34:15:34:15 | x [&ref] | main.rs:34:14:34:15 | * ... | provenance | MaD:1 | +| main.rs:38:20:38:27 | ... | main.rs:38:30:38:56 | if cond {...} else {...} | provenance | | +| main.rs:39:9:39:9 | a | main.rs:40:21:40:21 | a | provenance | | +| main.rs:39:13:39:22 | source(...) | main.rs:39:9:39:9 | a | provenance | | +| main.rs:40:9:40:9 | b | main.rs:41:10:41:10 | b | provenance | | +| main.rs:40:13:40:22 | f(...) | main.rs:40:9:40:9 | b | provenance | | +| main.rs:40:21:40:21 | a | main.rs:38:20:38:27 | ... | provenance | | +| main.rs:40:21:40:21 | a | main.rs:40:13:40:22 | f(...) | provenance | | +| main.rs:48:9:48:12 | capt | main.rs:50:5:50:5 | [post] f : ... => .. [captured capt] | provenance | | +| main.rs:48:16:48:25 | source(...) | main.rs:48:9:48:12 | capt | provenance | | +| main.rs:50:5:50:5 | [post] f : ... => .. [captured capt] | main.rs:51:10:51:13 | capt | provenance | | +| main.rs:50:5:50:5 | [post] f : ... => .. [captured capt] | main.rs:55:5:55:5 | g [captured capt] | provenance | | +| main.rs:55:5:55:5 | g [captured capt] | main.rs:53:14:53:17 | capt | provenance | | +| main.rs:58:29:60:1 | { ... } | main.rs:68:10:68:12 | f(...) | provenance | | +| main.rs:59:5:59:14 | source(...) | main.rs:58:29:60:1 | { ... } | provenance | | +| main.rs:62:17:62:25 | ...: i64 | main.rs:63:10:63:13 | data | provenance | | +| main.rs:73:9:73:9 | a | main.rs:74:7:74:7 | a | provenance | | +| main.rs:73:13:73:22 | source(...) | main.rs:73:9:73:9 | a | provenance | | +| main.rs:74:7:74:7 | a | main.rs:62:17:62:25 | ...: i64 | provenance | | +| main.rs:77:24:77:32 | ...: i64 | main.rs:77:42:83:1 | { ... } | provenance | | +| main.rs:87:9:87:9 | a | main.rs:88:21:88:21 | a | provenance | | +| main.rs:87:13:87:22 | source(...) | main.rs:87:9:87:9 | a | provenance | | +| main.rs:88:9:88:9 | b | main.rs:89:10:89:10 | b | provenance | | +| main.rs:88:13:88:22 | f(...) | main.rs:88:9:88:9 | b | provenance | | +| main.rs:88:21:88:21 | a | main.rs:77:24:77:32 | ...: i64 | provenance | | +| main.rs:88:21:88:21 | a | main.rs:88:13:88:22 | f(...) | provenance | | +| main.rs:92:28:92:33 | ...: i64 | main.rs:93:7:93:7 | x | provenance | | +| main.rs:92:28:92:33 | ...: i64 | main.rs:93:7:93:7 | x | provenance | | +| main.rs:92:28:92:33 | ...: i64 | main.rs:93:7:93:7 | x | provenance | | +| main.rs:93:7:93:7 | x | main.rs:98:12:98:12 | ... | provenance | | +| main.rs:93:7:93:7 | x | main.rs:100:12:100:12 | ... | provenance | | +| main.rs:93:7:93:7 | x | main.rs:110:17:110:17 | ... | provenance | | +| main.rs:93:7:93:7 | x | main.rs:112:17:112:17 | ... | provenance | | +| main.rs:97:9:97:9 | a | main.rs:98:24:98:24 | a | provenance | | +| main.rs:97:13:97:22 | source(...) | main.rs:97:9:97:9 | a | provenance | | +| main.rs:98:12:98:12 | ... | main.rs:98:20:98:20 | x | provenance | | +| main.rs:98:24:98:24 | a | main.rs:92:28:92:33 | ...: i64 | provenance | | +| main.rs:99:9:99:9 | b | main.rs:100:24:100:24 | b | provenance | | +| main.rs:99:13:99:22 | source(...) | main.rs:99:9:99:9 | b | provenance | | +| main.rs:100:12:100:12 | ... | main.rs:100:20:100:20 | x | provenance | | +| main.rs:100:24:100:24 | b | main.rs:92:28:92:33 | ...: i64 | provenance | | +| main.rs:104:33:104:38 | ...: i64 | main.rs:105:14:105:14 | x | provenance | | +| main.rs:105:14:105:14 | x | main.rs:92:28:92:33 | ...: i64 | provenance | | +| main.rs:109:9:109:9 | a | main.rs:110:29:110:29 | a | provenance | | +| main.rs:109:13:109:22 | source(...) | main.rs:109:9:109:9 | a | provenance | | +| main.rs:110:17:110:17 | ... | main.rs:110:25:110:25 | x | provenance | | +| main.rs:110:29:110:29 | a | main.rs:104:33:104:38 | ...: i64 | provenance | | +| main.rs:111:9:111:9 | b | main.rs:112:29:112:29 | b | provenance | | +| main.rs:111:13:111:22 | source(...) | main.rs:111:9:111:9 | b | provenance | | +| main.rs:112:17:112:17 | ... | main.rs:112:25:112:25 | x | provenance | | +| main.rs:112:29:112:29 | b | main.rs:104:33:104:38 | ...: i64 | provenance | | +| main.rs:120:9:120:9 | a | main.rs:121:26:121:36 | \|...\| ... : ... => .. [captured a] | provenance | | +| main.rs:120:9:120:9 | a | main.rs:122:26:122:36 | \|...\| ... : ... => .. [captured a] | provenance | | +| main.rs:120:9:120:9 | a | main.rs:123:26:123:36 | \|...\| ... : ... => .. [captured a] | provenance | | +| main.rs:120:9:120:9 | a | main.rs:124:26:124:36 | \|...\| ... : ... => .. [captured a] | provenance | | +| main.rs:120:13:120:22 | source(...) | main.rs:120:9:120:9 | a | provenance | | +| main.rs:121:26:121:36 | \|...\| ... : ... => .. [captured a] | main.rs:121:35:121:35 | a | provenance | heuristic-callback | +| main.rs:122:26:122:36 | \|...\| ... : ... => .. [captured a] | main.rs:122:35:122:35 | a | provenance | heuristic-callback | +| main.rs:123:26:123:36 | \|...\| ... : ... => .. [captured a] | main.rs:123:35:123:35 | a | provenance | heuristic-callback | +| main.rs:124:26:124:36 | \|...\| ... : ... => .. [captured a] | main.rs:124:35:124:35 | a | provenance | heuristic-callback | +| main.rs:131:30:131:40 | source(...) | main.rs:132:14:132:25 | await future | provenance | | +| main.rs:136:13:136:16 | data | main.rs:137:9:139:9 | { ... } : ... => .. [captured data] | provenance | | +| main.rs:136:20:136:30 | source(...) | main.rs:136:13:136:16 | data | provenance | | +| main.rs:137:9:139:9 | { ... } : ... => .. [captured data] | main.rs:138:18:138:21 | data | provenance | | +| main.rs:144:13:144:16 | data | main.rs:146:14:146:19 | future [captured data] | provenance | | +| main.rs:144:20:144:30 | source(...) | main.rs:144:13:144:16 | data | provenance | | +| main.rs:146:14:146:19 | future [captured data] | main.rs:145:30:145:33 | data | provenance | | +| main.rs:146:14:146:19 | future [captured data] | main.rs:146:14:146:25 | await future | provenance | | +| main.rs:152:9:154:9 | [post] { ... } : ... => .. [captured captured] | main.rs:156:14:156:21 | captured | provenance | | +| main.rs:153:13:153:20 | captured | main.rs:152:9:154:9 | [post] { ... } : ... => .. [captured captured] | provenance | | +| main.rs:153:24:153:34 | source(...) | main.rs:153:13:153:20 | captured | provenance | | +| main.rs:183:16:183:40 | TryExpr [Some] | main.rs:184:10:184:12 | f(...) [Some] | provenance | | +| main.rs:183:17:183:38 | Some(...) [Some, Some] | main.rs:183:16:183:40 | TryExpr [Some] | provenance | | +| main.rs:183:22:183:37 | Some(...) [Some] | main.rs:183:17:183:38 | Some(...) [Some, Some] | provenance | | +| main.rs:183:27:183:36 | source(...) | main.rs:183:22:183:37 | Some(...) [Some] | provenance | | +| main.rs:184:10:184:12 | f(...) [Some] | main.rs:184:10:184:21 | ... .unwrap() | provenance | MaD:2 | nodes | main.rs:10:20:10:52 | if cond {...} else {...} | semmle.label | if cond {...} else {...} | | main.rs:10:30:10:39 | source(...) | semmle.label | source(...) | @@ -80,109 +103,136 @@ nodes | main.rs:22:9:22:9 | a | semmle.label | a | | main.rs:22:13:22:22 | source(...) | semmle.label | source(...) | | main.rs:23:13:23:13 | a | semmle.label | a | -| main.rs:27:20:27:23 | ... | semmle.label | ... | -| main.rs:27:26:27:52 | if cond {...} else {...} | semmle.label | if cond {...} else {...} | -| main.rs:28:9:28:9 | a | semmle.label | a | -| main.rs:28:13:28:22 | source(...) | semmle.label | source(...) | -| main.rs:29:9:29:9 | b | semmle.label | b | -| main.rs:29:13:29:22 | f(...) | semmle.label | f(...) | -| main.rs:29:21:29:21 | a | semmle.label | a | -| main.rs:30:10:30:10 | b | semmle.label | b | -| main.rs:37:16:37:25 | source(...) | semmle.label | source(...) | -| main.rs:39:5:39:5 | [post] f : ... => .. [captured capt] | semmle.label | [post] f : ... => .. [captured capt] | -| main.rs:40:10:40:13 | capt | semmle.label | capt | -| main.rs:42:14:42:17 | capt | semmle.label | capt | -| main.rs:44:5:44:5 | g [captured capt] | semmle.label | g [captured capt] | -| main.rs:47:29:49:1 | { ... } | semmle.label | { ... } | -| main.rs:48:5:48:14 | source(...) | semmle.label | source(...) | -| main.rs:51:17:51:25 | ...: i64 | semmle.label | ...: i64 | -| main.rs:52:10:52:13 | data | semmle.label | data | -| main.rs:57:10:57:12 | f(...) | semmle.label | f(...) | -| main.rs:62:9:62:9 | a | semmle.label | a | -| main.rs:62:13:62:22 | source(...) | semmle.label | source(...) | -| main.rs:63:7:63:7 | a | semmle.label | a | -| main.rs:66:24:66:32 | ...: i64 | semmle.label | ...: i64 | -| main.rs:66:42:72:1 | { ... } | semmle.label | { ... } | -| main.rs:76:9:76:9 | a | semmle.label | a | -| main.rs:76:13:76:22 | source(...) | semmle.label | source(...) | -| main.rs:77:9:77:9 | b | semmle.label | b | -| main.rs:77:13:77:22 | f(...) | semmle.label | f(...) | -| main.rs:77:21:77:21 | a | semmle.label | a | -| main.rs:78:10:78:10 | b | semmle.label | b | -| main.rs:81:28:81:33 | ...: i64 | semmle.label | ...: i64 | -| main.rs:81:28:81:33 | ...: i64 | semmle.label | ...: i64 | -| main.rs:81:28:81:33 | ...: i64 | semmle.label | ...: i64 | -| main.rs:82:7:82:7 | x | semmle.label | x | -| main.rs:82:7:82:7 | x | semmle.label | x | -| main.rs:82:7:82:7 | x | semmle.label | x | -| main.rs:86:9:86:9 | a | semmle.label | a | -| main.rs:86:13:86:22 | source(...) | semmle.label | source(...) | -| main.rs:87:12:87:12 | ... | semmle.label | ... | -| main.rs:87:20:87:20 | x | semmle.label | x | -| main.rs:87:24:87:24 | a | semmle.label | a | +| main.rs:27:9:27:18 | TuplePat [tuple.0] | semmle.label | TuplePat [tuple.0] | +| main.rs:27:10:27:14 | mut x | semmle.label | mut x | +| main.rs:27:22:27:35 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | +| main.rs:27:23:27:31 | source(...) | semmle.label | source(...) | +| main.rs:28:6:28:6 | x | semmle.label | x | +| main.rs:29:14:29:14 | x | semmle.label | x | +| main.rs:33:9:33:16 | TuplePat [tuple.0] | semmle.label | TuplePat [tuple.0] | +| main.rs:33:10:33:14 | ref x | semmle.label | ref x | +| main.rs:33:14:33:14 | x [&ref] | semmle.label | x [&ref] | +| main.rs:33:20:33:31 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | +| main.rs:33:21:33:29 | source(...) | semmle.label | source(...) | +| main.rs:34:14:34:15 | * ... | semmle.label | * ... | +| main.rs:34:15:34:15 | x [&ref] | semmle.label | x [&ref] | +| main.rs:38:20:38:27 | ... | semmle.label | ... | +| main.rs:38:30:38:56 | if cond {...} else {...} | semmle.label | if cond {...} else {...} | +| main.rs:39:9:39:9 | a | semmle.label | a | +| main.rs:39:13:39:22 | source(...) | semmle.label | source(...) | +| main.rs:40:9:40:9 | b | semmle.label | b | +| main.rs:40:13:40:22 | f(...) | semmle.label | f(...) | +| main.rs:40:21:40:21 | a | semmle.label | a | +| main.rs:41:10:41:10 | b | semmle.label | b | +| main.rs:48:9:48:12 | capt | semmle.label | capt | +| main.rs:48:16:48:25 | source(...) | semmle.label | source(...) | +| main.rs:50:5:50:5 | [post] f : ... => .. [captured capt] | semmle.label | [post] f : ... => .. [captured capt] | +| main.rs:51:10:51:13 | capt | semmle.label | capt | +| main.rs:53:14:53:17 | capt | semmle.label | capt | +| main.rs:55:5:55:5 | g [captured capt] | semmle.label | g [captured capt] | +| main.rs:58:29:60:1 | { ... } | semmle.label | { ... } | +| main.rs:59:5:59:14 | source(...) | semmle.label | source(...) | +| main.rs:62:17:62:25 | ...: i64 | semmle.label | ...: i64 | +| main.rs:63:10:63:13 | data | semmle.label | data | +| main.rs:68:10:68:12 | f(...) | semmle.label | f(...) | +| main.rs:73:9:73:9 | a | semmle.label | a | +| main.rs:73:13:73:22 | source(...) | semmle.label | source(...) | +| main.rs:74:7:74:7 | a | semmle.label | a | +| main.rs:77:24:77:32 | ...: i64 | semmle.label | ...: i64 | +| main.rs:77:42:83:1 | { ... } | semmle.label | { ... } | +| main.rs:87:9:87:9 | a | semmle.label | a | +| main.rs:87:13:87:22 | source(...) | semmle.label | source(...) | | main.rs:88:9:88:9 | b | semmle.label | b | -| main.rs:88:13:88:22 | source(...) | semmle.label | source(...) | -| main.rs:89:12:89:12 | ... | semmle.label | ... | -| main.rs:89:20:89:20 | x | semmle.label | x | -| main.rs:89:24:89:24 | b | semmle.label | b | -| main.rs:93:33:93:38 | ...: i64 | semmle.label | ...: i64 | -| main.rs:94:14:94:14 | x | semmle.label | x | -| main.rs:98:9:98:9 | a | semmle.label | a | -| main.rs:98:13:98:22 | source(...) | semmle.label | source(...) | -| main.rs:99:17:99:17 | ... | semmle.label | ... | -| main.rs:99:25:99:25 | x | semmle.label | x | -| main.rs:99:29:99:29 | a | semmle.label | a | -| main.rs:100:9:100:9 | b | semmle.label | b | -| main.rs:100:13:100:22 | source(...) | semmle.label | source(...) | -| main.rs:101:17:101:17 | ... | semmle.label | ... | -| main.rs:101:25:101:25 | x | semmle.label | x | -| main.rs:101:29:101:29 | b | semmle.label | b | +| main.rs:88:13:88:22 | f(...) | semmle.label | f(...) | +| main.rs:88:21:88:21 | a | semmle.label | a | +| main.rs:89:10:89:10 | b | semmle.label | b | +| main.rs:92:28:92:33 | ...: i64 | semmle.label | ...: i64 | +| main.rs:92:28:92:33 | ...: i64 | semmle.label | ...: i64 | +| main.rs:92:28:92:33 | ...: i64 | semmle.label | ...: i64 | +| main.rs:93:7:93:7 | x | semmle.label | x | +| main.rs:93:7:93:7 | x | semmle.label | x | +| main.rs:93:7:93:7 | x | semmle.label | x | +| main.rs:97:9:97:9 | a | semmle.label | a | +| main.rs:97:13:97:22 | source(...) | semmle.label | source(...) | +| main.rs:98:12:98:12 | ... | semmle.label | ... | +| main.rs:98:20:98:20 | x | semmle.label | x | +| main.rs:98:24:98:24 | a | semmle.label | a | +| main.rs:99:9:99:9 | b | semmle.label | b | +| main.rs:99:13:99:22 | source(...) | semmle.label | source(...) | +| main.rs:100:12:100:12 | ... | semmle.label | ... | +| main.rs:100:20:100:20 | x | semmle.label | x | +| main.rs:100:24:100:24 | b | semmle.label | b | +| main.rs:104:33:104:38 | ...: i64 | semmle.label | ...: i64 | +| main.rs:105:14:105:14 | x | semmle.label | x | +| main.rs:109:9:109:9 | a | semmle.label | a | | main.rs:109:13:109:22 | source(...) | semmle.label | source(...) | -| main.rs:110:26:110:36 | \|...\| ... : ... => .. [captured a] | semmle.label | \|...\| ... : ... => .. [captured a] | -| main.rs:110:35:110:35 | a | semmle.label | a | -| main.rs:111:26:111:36 | \|...\| ... : ... => .. [captured a] | semmle.label | \|...\| ... : ... => .. [captured a] | -| main.rs:111:35:111:35 | a | semmle.label | a | -| main.rs:112:26:112:36 | \|...\| ... : ... => .. [captured a] | semmle.label | \|...\| ... : ... => .. [captured a] | -| main.rs:112:35:112:35 | a | semmle.label | a | -| main.rs:113:26:113:36 | \|...\| ... : ... => .. [captured a] | semmle.label | \|...\| ... : ... => .. [captured a] | -| main.rs:113:35:113:35 | a | semmle.label | a | -| main.rs:120:30:120:40 | source(...) | semmle.label | source(...) | -| main.rs:121:14:121:25 | await future | semmle.label | await future | -| main.rs:125:20:125:30 | source(...) | semmle.label | source(...) | -| main.rs:126:9:128:9 | { ... } : ... => .. [captured data] | semmle.label | { ... } : ... => .. [captured data] | -| main.rs:127:18:127:21 | data | semmle.label | data | -| main.rs:133:20:133:30 | source(...) | semmle.label | source(...) | -| main.rs:134:30:134:33 | data | semmle.label | data | -| main.rs:135:14:135:19 | future [captured data] | semmle.label | future [captured data] | -| main.rs:135:14:135:25 | await future | semmle.label | await future | -| main.rs:141:9:143:9 | [post] { ... } : ... => .. [captured captured] | semmle.label | [post] { ... } : ... => .. [captured captured] | -| main.rs:142:24:142:34 | source(...) | semmle.label | source(...) | -| main.rs:145:14:145:21 | captured | semmle.label | captured | +| main.rs:110:17:110:17 | ... | semmle.label | ... | +| main.rs:110:25:110:25 | x | semmle.label | x | +| main.rs:110:29:110:29 | a | semmle.label | a | +| main.rs:111:9:111:9 | b | semmle.label | b | +| main.rs:111:13:111:22 | source(...) | semmle.label | source(...) | +| main.rs:112:17:112:17 | ... | semmle.label | ... | +| main.rs:112:25:112:25 | x | semmle.label | x | +| main.rs:112:29:112:29 | b | semmle.label | b | +| main.rs:120:9:120:9 | a | semmle.label | a | +| main.rs:120:13:120:22 | source(...) | semmle.label | source(...) | +| main.rs:121:26:121:36 | \|...\| ... : ... => .. [captured a] | semmle.label | \|...\| ... : ... => .. [captured a] | +| main.rs:121:35:121:35 | a | semmle.label | a | +| main.rs:122:26:122:36 | \|...\| ... : ... => .. [captured a] | semmle.label | \|...\| ... : ... => .. [captured a] | +| main.rs:122:35:122:35 | a | semmle.label | a | +| main.rs:123:26:123:36 | \|...\| ... : ... => .. [captured a] | semmle.label | \|...\| ... : ... => .. [captured a] | +| main.rs:123:35:123:35 | a | semmle.label | a | +| main.rs:124:26:124:36 | \|...\| ... : ... => .. [captured a] | semmle.label | \|...\| ... : ... => .. [captured a] | +| main.rs:124:35:124:35 | a | semmle.label | a | +| main.rs:131:30:131:40 | source(...) | semmle.label | source(...) | +| main.rs:132:14:132:25 | await future | semmle.label | await future | +| main.rs:136:13:136:16 | data | semmle.label | data | +| main.rs:136:20:136:30 | source(...) | semmle.label | source(...) | +| main.rs:137:9:139:9 | { ... } : ... => .. [captured data] | semmle.label | { ... } : ... => .. [captured data] | +| main.rs:138:18:138:21 | data | semmle.label | data | +| main.rs:144:13:144:16 | data | semmle.label | data | +| main.rs:144:20:144:30 | source(...) | semmle.label | source(...) | +| main.rs:145:30:145:33 | data | semmle.label | data | +| main.rs:146:14:146:19 | future [captured data] | semmle.label | future [captured data] | +| main.rs:146:14:146:25 | await future | semmle.label | await future | +| main.rs:152:9:154:9 | [post] { ... } : ... => .. [captured captured] | semmle.label | [post] { ... } : ... => .. [captured captured] | +| main.rs:153:13:153:20 | captured | semmle.label | captured | +| main.rs:153:24:153:34 | source(...) | semmle.label | source(...) | +| main.rs:156:14:156:21 | captured | semmle.label | captured | +| main.rs:183:16:183:40 | TryExpr [Some] | semmle.label | TryExpr [Some] | +| main.rs:183:17:183:38 | Some(...) [Some, Some] | semmle.label | Some(...) [Some, Some] | +| main.rs:183:22:183:37 | Some(...) [Some] | semmle.label | Some(...) [Some] | +| main.rs:183:27:183:36 | source(...) | semmle.label | source(...) | +| main.rs:184:10:184:12 | f(...) [Some] | semmle.label | f(...) [Some] | +| main.rs:184:10:184:21 | ... .unwrap() | semmle.label | ... .unwrap() | subpaths -| main.rs:29:21:29:21 | a | main.rs:27:20:27:23 | ... | main.rs:27:26:27:52 | if cond {...} else {...} | main.rs:29:13:29:22 | f(...) | -| main.rs:77:21:77:21 | a | main.rs:66:24:66:32 | ...: i64 | main.rs:66:42:72:1 | { ... } | main.rs:77:13:77:22 | f(...) | -| main.rs:135:14:135:19 | future [captured data] | main.rs:134:30:134:33 | data | main.rs:134:30:134:33 | data | main.rs:135:14:135:25 | await future | +| main.rs:40:21:40:21 | a | main.rs:38:20:38:27 | ... | main.rs:38:30:38:56 | if cond {...} else {...} | main.rs:40:13:40:22 | f(...) | +| main.rs:88:21:88:21 | a | main.rs:77:24:77:32 | ...: i64 | main.rs:77:42:83:1 | { ... } | main.rs:88:13:88:22 | f(...) | +| main.rs:146:14:146:19 | future [captured data] | main.rs:145:30:145:33 | data | main.rs:145:30:145:33 | data | main.rs:146:14:146:25 | await future | testFailures #select | main.rs:11:10:11:16 | f(...) | main.rs:10:30:10:39 | source(...) | main.rs:11:10:11:16 | f(...) | $@ | main.rs:10:30:10:39 | source(...) | source(...) | | main.rs:17:18:17:21 | data | main.rs:22:13:22:22 | source(...) | main.rs:17:18:17:21 | data | $@ | main.rs:22:13:22:22 | source(...) | source(...) | -| main.rs:30:10:30:10 | b | main.rs:28:13:28:22 | source(...) | main.rs:30:10:30:10 | b | $@ | main.rs:28:13:28:22 | source(...) | source(...) | -| main.rs:40:10:40:13 | capt | main.rs:37:16:37:25 | source(...) | main.rs:40:10:40:13 | capt | $@ | main.rs:37:16:37:25 | source(...) | source(...) | -| main.rs:42:14:42:17 | capt | main.rs:37:16:37:25 | source(...) | main.rs:42:14:42:17 | capt | $@ | main.rs:37:16:37:25 | source(...) | source(...) | -| main.rs:52:10:52:13 | data | main.rs:62:13:62:22 | source(...) | main.rs:52:10:52:13 | data | $@ | main.rs:62:13:62:22 | source(...) | source(...) | -| main.rs:57:10:57:12 | f(...) | main.rs:48:5:48:14 | source(...) | main.rs:57:10:57:12 | f(...) | $@ | main.rs:48:5:48:14 | source(...) | source(...) | -| main.rs:78:10:78:10 | b | main.rs:76:13:76:22 | source(...) | main.rs:78:10:78:10 | b | $@ | main.rs:76:13:76:22 | source(...) | source(...) | -| main.rs:87:20:87:20 | x | main.rs:86:13:86:22 | source(...) | main.rs:87:20:87:20 | x | $@ | main.rs:86:13:86:22 | source(...) | source(...) | -| main.rs:89:20:89:20 | x | main.rs:88:13:88:22 | source(...) | main.rs:89:20:89:20 | x | $@ | main.rs:88:13:88:22 | source(...) | source(...) | -| main.rs:99:25:99:25 | x | main.rs:98:13:98:22 | source(...) | main.rs:99:25:99:25 | x | $@ | main.rs:98:13:98:22 | source(...) | source(...) | -| main.rs:99:25:99:25 | x | main.rs:100:13:100:22 | source(...) | main.rs:99:25:99:25 | x | $@ | main.rs:100:13:100:22 | source(...) | source(...) | -| main.rs:101:25:101:25 | x | main.rs:98:13:98:22 | source(...) | main.rs:101:25:101:25 | x | $@ | main.rs:98:13:98:22 | source(...) | source(...) | -| main.rs:101:25:101:25 | x | main.rs:100:13:100:22 | source(...) | main.rs:101:25:101:25 | x | $@ | main.rs:100:13:100:22 | source(...) | source(...) | -| main.rs:110:35:110:35 | a | main.rs:109:13:109:22 | source(...) | main.rs:110:35:110:35 | a | $@ | main.rs:109:13:109:22 | source(...) | source(...) | -| main.rs:111:35:111:35 | a | main.rs:109:13:109:22 | source(...) | main.rs:111:35:111:35 | a | $@ | main.rs:109:13:109:22 | source(...) | source(...) | -| main.rs:112:35:112:35 | a | main.rs:109:13:109:22 | source(...) | main.rs:112:35:112:35 | a | $@ | main.rs:109:13:109:22 | source(...) | source(...) | -| main.rs:113:35:113:35 | a | main.rs:109:13:109:22 | source(...) | main.rs:113:35:113:35 | a | $@ | main.rs:109:13:109:22 | source(...) | source(...) | -| main.rs:121:14:121:25 | await future | main.rs:120:30:120:40 | source(...) | main.rs:121:14:121:25 | await future | $@ | main.rs:120:30:120:40 | source(...) | source(...) | -| main.rs:127:18:127:21 | data | main.rs:125:20:125:30 | source(...) | main.rs:127:18:127:21 | data | $@ | main.rs:125:20:125:30 | source(...) | source(...) | -| main.rs:135:14:135:25 | await future | main.rs:133:20:133:30 | source(...) | main.rs:135:14:135:25 | await future | $@ | main.rs:133:20:133:30 | source(...) | source(...) | -| main.rs:145:14:145:21 | captured | main.rs:142:24:142:34 | source(...) | main.rs:145:14:145:21 | captured | $@ | main.rs:142:24:142:34 | source(...) | source(...) | +| main.rs:29:14:29:14 | x | main.rs:27:23:27:31 | source(...) | main.rs:29:14:29:14 | x | $@ | main.rs:27:23:27:31 | source(...) | source(...) | +| main.rs:34:14:34:15 | * ... | main.rs:33:21:33:29 | source(...) | main.rs:34:14:34:15 | * ... | $@ | main.rs:33:21:33:29 | source(...) | source(...) | +| main.rs:41:10:41:10 | b | main.rs:39:13:39:22 | source(...) | main.rs:41:10:41:10 | b | $@ | main.rs:39:13:39:22 | source(...) | source(...) | +| main.rs:51:10:51:13 | capt | main.rs:48:16:48:25 | source(...) | main.rs:51:10:51:13 | capt | $@ | main.rs:48:16:48:25 | source(...) | source(...) | +| main.rs:53:14:53:17 | capt | main.rs:48:16:48:25 | source(...) | main.rs:53:14:53:17 | capt | $@ | main.rs:48:16:48:25 | source(...) | source(...) | +| main.rs:63:10:63:13 | data | main.rs:73:13:73:22 | source(...) | main.rs:63:10:63:13 | data | $@ | main.rs:73:13:73:22 | source(...) | source(...) | +| main.rs:68:10:68:12 | f(...) | main.rs:59:5:59:14 | source(...) | main.rs:68:10:68:12 | f(...) | $@ | main.rs:59:5:59:14 | source(...) | source(...) | +| main.rs:89:10:89:10 | b | main.rs:87:13:87:22 | source(...) | main.rs:89:10:89:10 | b | $@ | main.rs:87:13:87:22 | source(...) | source(...) | +| main.rs:98:20:98:20 | x | main.rs:97:13:97:22 | source(...) | main.rs:98:20:98:20 | x | $@ | main.rs:97:13:97:22 | source(...) | source(...) | +| main.rs:100:20:100:20 | x | main.rs:99:13:99:22 | source(...) | main.rs:100:20:100:20 | x | $@ | main.rs:99:13:99:22 | source(...) | source(...) | +| main.rs:110:25:110:25 | x | main.rs:109:13:109:22 | source(...) | main.rs:110:25:110:25 | x | $@ | main.rs:109:13:109:22 | source(...) | source(...) | +| main.rs:110:25:110:25 | x | main.rs:111:13:111:22 | source(...) | main.rs:110:25:110:25 | x | $@ | main.rs:111:13:111:22 | source(...) | source(...) | +| main.rs:112:25:112:25 | x | main.rs:109:13:109:22 | source(...) | main.rs:112:25:112:25 | x | $@ | main.rs:109:13:109:22 | source(...) | source(...) | +| main.rs:112:25:112:25 | x | main.rs:111:13:111:22 | source(...) | main.rs:112:25:112:25 | x | $@ | main.rs:111:13:111:22 | source(...) | source(...) | +| main.rs:121:35:121:35 | a | main.rs:120:13:120:22 | source(...) | main.rs:121:35:121:35 | a | $@ | main.rs:120:13:120:22 | source(...) | source(...) | +| main.rs:122:35:122:35 | a | main.rs:120:13:120:22 | source(...) | main.rs:122:35:122:35 | a | $@ | main.rs:120:13:120:22 | source(...) | source(...) | +| main.rs:123:35:123:35 | a | main.rs:120:13:120:22 | source(...) | main.rs:123:35:123:35 | a | $@ | main.rs:120:13:120:22 | source(...) | source(...) | +| main.rs:124:35:124:35 | a | main.rs:120:13:120:22 | source(...) | main.rs:124:35:124:35 | a | $@ | main.rs:120:13:120:22 | source(...) | source(...) | +| main.rs:132:14:132:25 | await future | main.rs:131:30:131:40 | source(...) | main.rs:132:14:132:25 | await future | $@ | main.rs:131:30:131:40 | source(...) | source(...) | +| main.rs:138:18:138:21 | data | main.rs:136:20:136:30 | source(...) | main.rs:138:18:138:21 | data | $@ | main.rs:136:20:136:30 | source(...) | source(...) | +| main.rs:146:14:146:25 | await future | main.rs:144:20:144:30 | source(...) | main.rs:146:14:146:25 | await future | $@ | main.rs:144:20:144:30 | source(...) | source(...) | +| main.rs:156:14:156:21 | captured | main.rs:153:24:153:34 | source(...) | main.rs:156:14:156:21 | captured | $@ | main.rs:153:24:153:34 | source(...) | source(...) | +| main.rs:184:10:184:21 | ... .unwrap() | main.rs:183:27:183:36 | source(...) | main.rs:184:10:184:21 | ... .unwrap() | $@ | main.rs:183:27:183:36 | source(...) | source(...) | diff --git a/rust/ql/test/library-tests/dataflow/lambdas/main.rs b/rust/ql/test/library-tests/dataflow/lambdas/main.rs index 650734bdd149..3a49a108f06b 100644 --- a/rust/ql/test/library-tests/dataflow/lambdas/main.rs +++ b/rust/ql/test/library-tests/dataflow/lambdas/main.rs @@ -23,8 +23,19 @@ fn closure_flow_in() { f(true, a); } +fn closure_flow_in2() { + let (mut x, y) = (source(1), 0); + (x) = x; + (|| sink(x))(); // $ hasValueFlow=1 +} + +fn closure_flow_in3() { + let (ref x,) = (source(1),); + (|| sink(*x))(); // $ hasValueFlow=1 +} + fn closure_flow_through() { - let f = |cond, data| if cond { data } else { 0 }; + let f = |cond, ((data))| if cond { data } else { 0 }; let a = source(43); let b = f(true, a); sink(b); // $ hasValueFlow=43 @@ -168,9 +179,15 @@ mod async_blocks { } } +fn closure_flow_out_try() { + let f = || (Some(Some(source(93))))?; + sink(f().unwrap()); // $ hasValueFlow=93 +} + fn main() { closure_flow_out(); closure_flow_in(); + closure_flow_in2(); closure_flow_through(); closure_captured_variable(); function_flow_in(); diff --git a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected index c6984639dcef..9c039d360fc5 100644 --- a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected +++ b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected @@ -672,8 +672,8 @@ localStep | main.rs:478:39:478:72 | ...: Vec::<...> | main.rs:478:39:478:43 | names | | main.rs:479:9:479:20 | default_name | main.rs:479:9:479:20 | [SSA] default_name | | main.rs:479:9:479:20 | default_name | main.rs:479:9:479:20 | default_name | +| main.rs:479:9:479:20 | default_name | main.rs:480:9:480:20 | SSA phi read(default_name) | | main.rs:479:24:479:45 | ... .to_string() | main.rs:479:9:479:20 | default_name | -| main.rs:479:24:479:45 | ... .to_string() | main.rs:480:9:480:20 | SSA phi read(default_name) | | main.rs:480:5:486:5 | for ... in ... { ... } | main.rs:478:75:487:1 | { ... } | | main.rs:480:9:480:20 | SSA phi read(default_name) | main.rs:482:41:482:67 | default_name | | main.rs:480:10:480:13 | [SSA] cond | main.rs:481:12:481:15 | cond | diff --git a/rust/ql/test/library-tests/dataflow/models/models.expected b/rust/ql/test/library-tests/dataflow/models/models.expected index 4bb38eb73ca3..084bc23457eb 100644 --- a/rust/ql/test/library-tests/dataflow/models/models.expected +++ b/rust/ql/test/library-tests/dataflow/models/models.expected @@ -191,8 +191,10 @@ edges | main.rs:204:14:204:14 | ... | main.rs:205:14:205:14 | n | provenance | | | main.rs:208:11:208:11 | s | main.rs:204:14:204:14 | ... | provenance | MaD:28 | | main.rs:208:11:208:11 | s | main.rs:204:14:204:14 | ... | provenance | MaD:28 | -| main.rs:212:13:212:22 | source(...) | main.rs:214:23:214:23 | f [captured s] | provenance | | -| main.rs:212:13:212:22 | source(...) | main.rs:214:23:214:23 | f [captured s] | provenance | | +| main.rs:212:9:212:9 | s | main.rs:214:23:214:23 | f [captured s] | provenance | | +| main.rs:212:9:212:9 | s | main.rs:214:23:214:23 | f [captured s] | provenance | | +| main.rs:212:13:212:22 | source(...) | main.rs:212:9:212:9 | s | provenance | | +| main.rs:212:13:212:22 | source(...) | main.rs:212:9:212:9 | s | provenance | | | main.rs:213:40:213:40 | s | main.rs:213:17:213:42 | if ... {...} else {...} | provenance | | | main.rs:213:40:213:40 | s | main.rs:213:17:213:42 | if ... {...} else {...} | provenance | | | main.rs:214:9:214:9 | t | main.rs:215:10:215:10 | t | provenance | | @@ -596,6 +598,8 @@ nodes | main.rs:205:14:205:14 | n | semmle.label | n | | main.rs:208:11:208:11 | s | semmle.label | s | | main.rs:208:11:208:11 | s | semmle.label | s | +| main.rs:212:9:212:9 | s | semmle.label | s | +| main.rs:212:9:212:9 | s | semmle.label | s | | main.rs:212:13:212:22 | source(...) | semmle.label | source(...) | | main.rs:212:13:212:22 | source(...) | semmle.label | source(...) | | main.rs:213:17:213:42 | if ... {...} else {...} | semmle.label | if ... {...} else {...} | diff --git a/rust/ql/test/library-tests/sensitivedata/test.rs b/rust/ql/test/library-tests/sensitivedata/test.rs index e2bb5a5f595c..0dfc94ccf558 100644 --- a/rust/ql/test/library-tests/sensitivedata/test.rs +++ b/rust/ql/test/library-tests/sensitivedata/test.rs @@ -97,10 +97,17 @@ fn get_public_key() -> String { get_string() } fn get_secret_token() -> String { get_string() } fn get_next_token() -> String { get_string() } +struct Connection; + +impl Connection { + fn set_trusted_schema(&mut self, enabled: bool) -> bool { enabled } +} + fn test_credentials( account_key: &str, accnt_key: &str, license_key: &str, secret_key: &str, is_secret: bool, num_accounts: i64, username: String, user_name: String, userid: i64, user_id: i64, my_user_id_64: i64, id: i64, uid: i64, uuid: i64, guid: i64, unique_id: i64, sessionkey: &[u64; 4], session_key: &[u64; 4], hashkey: &[u64; 4], hash_key: &[u64; 4], sessionkeypath: &[u64; 4], account_key_path: &[u64; 4], + trusted_token: &str, trusted_schema: bool, trustedSchema: bool, conn: &mut Connection, ms: &MyStruct ) { // credentials @@ -125,6 +132,7 @@ fn test_credentials( sink(get_secure_key()); // $ MISSING: sensitive=secret sink(get_private_key()); // $ MISSING: sensitive=secret sink(get_secret_token()); // $ sensitive=secret + sink(trusted_token); // $ sensitive=secret // not (necessarily) credentials @@ -146,6 +154,9 @@ fn test_credentials( sink(get_public_key()); sink(get_next_token()); + sink(trusted_schema); + sink(trustedSchema); + sink(conn.set_trusted_schema(false)); } struct MacAddr { diff --git a/rust/ql/test/query-tests/diagnostics/SsaConsistencyCounts.expected b/rust/ql/test/query-tests/diagnostics/SsaConsistencyCounts.expected index 7e264176d32d..e69de29bb2d1 100644 --- a/rust/ql/test/query-tests/diagnostics/SsaConsistencyCounts.expected +++ b/rust/ql/test/query-tests/diagnostics/SsaConsistencyCounts.expected @@ -1,10 +0,0 @@ -| Definition cannot reach a read | 0 | -| End of a basic block can be reached by multiple definitions | 0 | -| Phi has less than 2 immediately prior references | 0 | -| Phi node has less than two inputs | 0 | -| Phi read has less than 2 immediately prior references | 0 | -| Read can be reached from multiple definitions | 0 | -| Read cannot be reached from a definition | 0 | -| Read does not have a prior reference | 0 | -| Read has multiple prior references | 0 | -| Read is not dominated by a definition | 0 | diff --git a/rust/ql/test/query-tests/security/CWE-022/Cargo.lock b/rust/ql/test/query-tests/security/CWE-022/Cargo.lock index f6b8cfc2c4b4..a84a125fd6b2 100644 --- a/rust/ql/test/query-tests/security/CWE-022/Cargo.lock +++ b/rust/ql/test/query-tests/security/CWE-022/Cargo.lock @@ -151,6 +151,58 @@ version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +[[package]] +name = "axum" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31b698c5f9a010f6573133b09e0de5408834d0c82f8d7475a89fc1867a71cd90" +dependencies = [ + "axum-core", + "bytes", + "form_urlencoded", + "futures-util", + "http", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "serde_core", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "axum-core" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08c78f31d7b1291f7ee735c1c6780ccde7785daae9a9206026862dab7d8792d1" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "http-body-util", + "mime", + "pin-project-lite", + "sync_wrapper", + "tower-layer", + "tower-service", + "tracing", +] + [[package]] name = "backtrace" version = "0.3.75" @@ -281,7 +333,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -374,7 +426,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.103", ] [[package]] @@ -566,6 +618,7 @@ dependencies = [ "hyper", "pin-project-lite", "tokio", + "tower-service", ] [[package]] @@ -634,6 +687,12 @@ dependencies = [ "value-bag", ] +[[package]] +name = "matchit" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" + [[package]] name = "memchr" version = "2.7.5" @@ -793,7 +852,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 2.0.103", ] [[package]] @@ -900,7 +959,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -923,22 +982,32 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "serde" -version = "1.0.219" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.229" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.219" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 3.0.9", ] [[package]] @@ -953,6 +1022,17 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_path_to_error" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a9ff822e371bb5403e391ecd83e182e0e77ba7f6fe0160b795797109d1b457" +dependencies = [ + "itoa", + "serde", + "serde_core", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -1018,6 +1098,17 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn" +version = "3.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d78c8dee4c7bf0e14673097256fed6142ce9d3b85a408189d07482442145823b" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + [[package]] name = "sync_wrapper" version = "1.0.2" @@ -1032,6 +1123,7 @@ name = "test" version = "0.0.1" dependencies = [ "async-std", + "axum", "poem", "tokio", ] @@ -1053,7 +1145,7 @@ checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.103", ] [[package]] @@ -1082,7 +1174,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.103", ] [[package]] @@ -1115,12 +1207,41 @@ dependencies = [ "winnow", ] +[[package]] +name = "tower" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + [[package]] name = "tracing" version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ + "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -1134,7 +1255,7 @@ checksum = "1b1ffbcf9c6f6b99d386e7444eb608ba646ae452a36b39737deb9663b610f662" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.103", ] [[package]] @@ -1207,7 +1328,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn", + "syn 2.0.103", "wasm-bindgen-shared", ] @@ -1242,7 +1363,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.103", "wasm-bindgen-backend", "wasm-bindgen-shared", ] diff --git a/rust/ql/test/query-tests/security/CWE-022/TaintedPath.expected b/rust/ql/test/query-tests/security/CWE-022/TaintedPath.expected index 6151a3eabd10..225511e90839 100644 --- a/rust/ql/test/query-tests/security/CWE-022/TaintedPath.expected +++ b/rust/ql/test/query-tests/security/CWE-022/TaintedPath.expected @@ -12,41 +12,42 @@ | src/main.rs:119:33:119:37 | path6 | src/main.rs:103:17:103:32 | ...::args(...) | src/main.rs:119:33:119:37 | path6 | This path depends on a $@. | src/main.rs:103:17:103:32 | ...::args(...) | user-provided value | | src/main.rs:122:27:122:39 | path1.clone() | src/main.rs:103:17:103:32 | ...::args(...) | src/main.rs:122:27:122:39 | path1.clone() | This path depends on a $@. | src/main.rs:103:17:103:32 | ...::args(...) | user-provided value | | src/main.rs:123:37:123:49 | path1.clone() | src/main.rs:103:17:103:32 | ...::args(...) | src/main.rs:123:37:123:49 | path1.clone() | This path depends on a $@. | src/main.rs:103:17:103:32 | ...::args(...) | user-provided value | -| src/main.rs:173:8:173:11 | path | src/main.rs:185:17:185:32 | ...::args(...) | src/main.rs:173:8:173:11 | path | This path depends on a $@. | src/main.rs:185:17:185:32 | ...::args(...) | user-provided value | -| src/main.rs:174:36:174:43 | path_str | src/main.rs:185:17:185:32 | ...::args(...) | src/main.rs:174:36:174:43 | path_str | This path depends on a $@. | src/main.rs:185:17:185:32 | ...::args(...) | user-provided value | -| src/main.rs:177:36:177:39 | path | src/main.rs:185:17:185:32 | ...::args(...) | src/main.rs:177:36:177:39 | path | This path depends on a $@. | src/main.rs:185:17:185:32 | ...::args(...) | user-provided value | +| src/main.rs:173:8:173:11 | path | src/main.rs:211:17:211:32 | ...::args(...) | src/main.rs:173:8:173:11 | path | This path depends on a $@. | src/main.rs:211:17:211:32 | ...::args(...) | user-provided value | +| src/main.rs:174:36:174:43 | path_str | src/main.rs:211:17:211:32 | ...::args(...) | src/main.rs:174:36:174:43 | path_str | This path depends on a $@. | src/main.rs:211:17:211:32 | ...::args(...) | user-provided value | +| src/main.rs:177:36:177:39 | path | src/main.rs:211:17:211:32 | ...::args(...) | src/main.rs:177:36:177:39 | path | This path depends on a $@. | src/main.rs:211:17:211:32 | ...::args(...) | user-provided value | +| src/main.rs:201:73:201:76 | path | src/main.rs:208:33:208:39 | request | src/main.rs:201:73:201:76 | path | This path depends on a $@. | src/main.rs:208:33:208:39 | request | user-provided value | edges | src/main.rs:7:11:7:19 | file_name | src/main.rs:9:35:9:43 | file_name | provenance | | | src/main.rs:9:9:9:17 | file_path | src/main.rs:11:24:11:32 | file_path | provenance | Sink:MaD:6 | | src/main.rs:9:21:9:44 | ...::from(...) | src/main.rs:9:9:9:17 | file_path | provenance | | -| src/main.rs:9:35:9:43 | file_name | src/main.rs:9:21:9:44 | ...::from(...) | provenance | MaD:14 | +| src/main.rs:9:35:9:43 | file_name | src/main.rs:9:21:9:44 | ...::from(...) | provenance | MaD:15 | | src/main.rs:38:11:38:19 | file_path | src/main.rs:41:52:41:60 | file_path | provenance | | | src/main.rs:41:9:41:17 | file_path | src/main.rs:46:24:46:32 | file_path | provenance | Sink:MaD:6 | | src/main.rs:41:21:41:62 | public_path.join(...) | src/main.rs:41:9:41:17 | file_path | provenance | | -| src/main.rs:41:38:41:61 | ...::from(...) | src/main.rs:41:21:41:62 | public_path.join(...) | provenance | MaD:12 | -| src/main.rs:41:52:41:60 | file_path | src/main.rs:41:38:41:61 | ...::from(...) | provenance | MaD:14 | +| src/main.rs:41:38:41:61 | ...::from(...) | src/main.rs:41:21:41:62 | public_path.join(...) | provenance | MaD:13 | +| src/main.rs:41:52:41:60 | file_path | src/main.rs:41:38:41:61 | ...::from(...) | provenance | MaD:15 | | src/main.rs:63:11:63:19 | file_path | src/main.rs:66:32:66:40 | file_path | provenance | | | src/main.rs:66:9:66:17 | file_path [&ref] | src/main.rs:71:24:71:32 | file_path | provenance | Sink:MaD:6 | | src/main.rs:66:21:66:41 | ...::new(...) [&ref] | src/main.rs:66:9:66:17 | file_path [&ref] | provenance | | -| src/main.rs:66:31:66:40 | &file_path [&ref] | src/main.rs:66:21:66:41 | ...::new(...) [&ref] | provenance | MaD:13 | +| src/main.rs:66:31:66:40 | &file_path [&ref] | src/main.rs:66:21:66:41 | ...::new(...) [&ref] | provenance | MaD:14 | | src/main.rs:66:32:66:40 | file_path | src/main.rs:66:31:66:40 | &file_path [&ref] | provenance | | | src/main.rs:76:11:76:19 | file_path | src/main.rs:79:52:79:60 | file_path | provenance | | | src/main.rs:79:9:79:17 | file_path | src/main.rs:80:21:80:29 | file_path | provenance | | | src/main.rs:79:21:79:62 | public_path.join(...) | src/main.rs:79:9:79:17 | file_path | provenance | | -| src/main.rs:79:38:79:61 | ...::from(...) | src/main.rs:79:21:79:62 | public_path.join(...) | provenance | MaD:12 | -| src/main.rs:79:52:79:60 | file_path | src/main.rs:79:38:79:61 | ...::from(...) | provenance | MaD:14 | +| src/main.rs:79:38:79:61 | ...::from(...) | src/main.rs:79:21:79:62 | public_path.join(...) | provenance | MaD:13 | +| src/main.rs:79:52:79:60 | file_path | src/main.rs:79:38:79:61 | ...::from(...) | provenance | MaD:15 | | src/main.rs:80:9:80:17 | file_path | src/main.rs:85:24:85:32 | file_path | provenance | Sink:MaD:6 | -| src/main.rs:80:21:80:29 | file_path | src/main.rs:80:21:80:44 | file_path.canonicalize() [Ok] | provenance | MaD:15 | -| src/main.rs:80:21:80:44 | file_path.canonicalize() [Ok] | src/main.rs:80:21:80:53 | ... .unwrap() | provenance | MaD:11 | +| src/main.rs:80:21:80:29 | file_path | src/main.rs:80:21:80:44 | file_path.canonicalize() [Ok] | provenance | MaD:16 | +| src/main.rs:80:21:80:44 | file_path.canonicalize() [Ok] | src/main.rs:80:21:80:53 | ... .unwrap() | provenance | MaD:12 | | src/main.rs:80:21:80:53 | ... .unwrap() | src/main.rs:80:9:80:17 | file_path | provenance | | | src/main.rs:90:11:90:19 | file_path | src/main.rs:93:32:93:40 | file_path | provenance | | | src/main.rs:93:9:93:17 | file_path [&ref] | src/main.rs:98:21:98:29 | file_path [&ref] | provenance | | | src/main.rs:93:21:93:41 | ...::new(...) [&ref] | src/main.rs:93:9:93:17 | file_path [&ref] | provenance | | -| src/main.rs:93:31:93:40 | &file_path [&ref] | src/main.rs:93:21:93:41 | ...::new(...) [&ref] | provenance | MaD:13 | +| src/main.rs:93:31:93:40 | &file_path [&ref] | src/main.rs:93:21:93:41 | ...::new(...) [&ref] | provenance | MaD:14 | | src/main.rs:93:32:93:40 | file_path | src/main.rs:93:31:93:40 | &file_path [&ref] | provenance | | | src/main.rs:98:9:98:17 | file_path | src/main.rs:99:24:99:32 | file_path | provenance | Sink:MaD:6 | | src/main.rs:98:21:98:29 | file_path [&ref] | src/main.rs:98:21:98:44 | file_path.canonicalize() [Ok] | provenance | Config | -| src/main.rs:98:21:98:44 | file_path.canonicalize() [Ok] | src/main.rs:98:21:98:53 | ... .unwrap() | provenance | MaD:11 | +| src/main.rs:98:21:98:44 | file_path.canonicalize() [Ok] | src/main.rs:98:21:98:53 | ... .unwrap() | provenance | MaD:12 | | src/main.rs:98:21:98:53 | ... .unwrap() | src/main.rs:98:9:98:17 | file_path | provenance | | | src/main.rs:103:9:103:13 | path1 | src/main.rs:104:33:104:37 | path1 | provenance | | | src/main.rs:103:9:103:13 | path1 | src/main.rs:106:39:106:43 | path1 | provenance | | @@ -55,55 +56,59 @@ edges | src/main.rs:103:9:103:13 | path1 | src/main.rs:115:39:115:43 | path1 | provenance | | | src/main.rs:103:9:103:13 | path1 | src/main.rs:122:27:122:31 | path1 | provenance | | | src/main.rs:103:9:103:13 | path1 | src/main.rs:123:37:123:41 | path1 | provenance | | -| src/main.rs:103:17:103:32 | ...::args(...) | src/main.rs:103:17:103:32 | ...::args(...) [element] | provenance | Src:MaD:7 | -| src/main.rs:103:17:103:32 | ...::args(...) [element] | src/main.rs:103:17:103:39 | ... .nth(...) [Some] | provenance | MaD:9 | -| src/main.rs:103:17:103:39 | ... .nth(...) [Some] | src/main.rs:103:17:103:48 | ... .unwrap() | provenance | MaD:10 | +| src/main.rs:103:17:103:32 | ...::args(...) | src/main.rs:103:17:103:32 | ...::args(...) [element] | provenance | Src:MaD:8 | +| src/main.rs:103:17:103:32 | ...::args(...) [element] | src/main.rs:103:17:103:39 | ... .nth(...) [Some] | provenance | MaD:10 | +| src/main.rs:103:17:103:39 | ... .nth(...) [Some] | src/main.rs:103:17:103:48 | ... .unwrap() | provenance | MaD:11 | | src/main.rs:103:17:103:48 | ... .unwrap() | src/main.rs:103:9:103:13 | path1 | provenance | | -| src/main.rs:104:33:104:37 | path1 | src/main.rs:104:33:104:45 | path1.clone() | provenance | MaD:8 | +| src/main.rs:104:33:104:37 | path1 | src/main.rs:104:33:104:45 | path1.clone() | provenance | MaD:9 | | src/main.rs:104:33:104:45 | path1.clone() | src/main.rs:104:33:104:45 | path1.clone() | provenance | Sink:MaD:2 | | src/main.rs:106:9:106:13 | path2 | src/main.rs:107:33:107:37 | path2 | provenance | Sink:MaD:2 | -| src/main.rs:106:17:106:52 | ...::canonicalize(...) [Ok] | src/main.rs:106:17:106:61 | ... .unwrap() | provenance | MaD:11 | +| src/main.rs:106:17:106:52 | ...::canonicalize(...) [Ok] | src/main.rs:106:17:106:61 | ... .unwrap() | provenance | MaD:12 | | src/main.rs:106:17:106:61 | ... .unwrap() | src/main.rs:106:9:106:13 | path2 | provenance | | -| src/main.rs:106:39:106:43 | path1 | src/main.rs:106:39:106:51 | path1.clone() | provenance | MaD:8 | +| src/main.rs:106:39:106:43 | path1 | src/main.rs:106:39:106:51 | path1.clone() | provenance | MaD:9 | | src/main.rs:106:39:106:51 | path1.clone() | src/main.rs:106:17:106:52 | ...::canonicalize(...) [Ok] | provenance | Config | | src/main.rs:109:9:109:13 | path3 | src/main.rs:110:35:110:39 | path3 | provenance | Sink:MaD:4 | | src/main.rs:109:17:109:54 | ...::canonicalize(...) [future, Ok] | src/main.rs:109:17:109:60 | await ... [Ok] | provenance | | -| src/main.rs:109:17:109:60 | await ... [Ok] | src/main.rs:109:17:109:69 | ... .unwrap() | provenance | MaD:11 | +| src/main.rs:109:17:109:60 | await ... [Ok] | src/main.rs:109:17:109:69 | ... .unwrap() | provenance | MaD:12 | | src/main.rs:109:17:109:69 | ... .unwrap() | src/main.rs:109:9:109:13 | path3 | provenance | | -| src/main.rs:109:41:109:45 | path1 | src/main.rs:109:41:109:53 | path1.clone() | provenance | MaD:8 | +| src/main.rs:109:41:109:45 | path1 | src/main.rs:109:41:109:53 | path1.clone() | provenance | MaD:9 | | src/main.rs:109:41:109:53 | path1.clone() | src/main.rs:109:17:109:54 | ...::canonicalize(...) [future, Ok] | provenance | Config | | src/main.rs:112:9:112:13 | path4 | src/main.rs:113:39:113:43 | path4 | provenance | Sink:MaD:1 | | src/main.rs:112:17:112:58 | ...::canonicalize(...) [future, Ok] | src/main.rs:112:17:112:64 | await ... [Ok] | provenance | | -| src/main.rs:112:17:112:64 | await ... [Ok] | src/main.rs:112:17:112:73 | ... .unwrap() | provenance | MaD:11 | +| src/main.rs:112:17:112:64 | await ... [Ok] | src/main.rs:112:17:112:73 | ... .unwrap() | provenance | MaD:12 | | src/main.rs:112:17:112:73 | ... .unwrap() | src/main.rs:112:9:112:13 | path4 | provenance | | -| src/main.rs:112:45:112:49 | path1 | src/main.rs:112:45:112:57 | path1.clone() | provenance | MaD:8 | +| src/main.rs:112:45:112:49 | path1 | src/main.rs:112:45:112:57 | path1.clone() | provenance | MaD:9 | | src/main.rs:112:45:112:57 | path1.clone() | src/main.rs:112:17:112:58 | ...::canonicalize(...) [future, Ok] | provenance | Config | | src/main.rs:115:9:115:13 | path5 [&ref] | src/main.rs:116:33:116:37 | path5 | provenance | Sink:MaD:2 | | src/main.rs:115:9:115:13 | path5 [&ref] | src/main.rs:118:17:118:21 | path5 [&ref] | provenance | | | src/main.rs:115:17:115:44 | ...::new(...) [&ref] | src/main.rs:115:9:115:13 | path5 [&ref] | provenance | | -| src/main.rs:115:38:115:43 | &path1 [&ref] | src/main.rs:115:17:115:44 | ...::new(...) [&ref] | provenance | MaD:13 | +| src/main.rs:115:38:115:43 | &path1 [&ref] | src/main.rs:115:17:115:44 | ...::new(...) [&ref] | provenance | MaD:14 | | src/main.rs:115:39:115:43 | path1 | src/main.rs:115:38:115:43 | &path1 [&ref] | provenance | | | src/main.rs:118:9:118:13 | path6 | src/main.rs:119:33:119:37 | path6 | provenance | Sink:MaD:2 | | src/main.rs:118:17:118:21 | path5 [&ref] | src/main.rs:118:17:118:36 | path5.canonicalize() [Ok] | provenance | Config | -| src/main.rs:118:17:118:36 | path5.canonicalize() [Ok] | src/main.rs:118:17:118:45 | ... .unwrap() | provenance | MaD:11 | +| src/main.rs:118:17:118:36 | path5.canonicalize() [Ok] | src/main.rs:118:17:118:45 | ... .unwrap() | provenance | MaD:12 | | src/main.rs:118:17:118:45 | ... .unwrap() | src/main.rs:118:9:118:13 | path6 | provenance | | -| src/main.rs:122:27:122:31 | path1 | src/main.rs:122:27:122:39 | path1.clone() | provenance | MaD:8 | +| src/main.rs:122:27:122:31 | path1 | src/main.rs:122:27:122:39 | path1.clone() | provenance | MaD:9 | | src/main.rs:122:27:122:39 | path1.clone() | src/main.rs:122:27:122:39 | path1.clone() | provenance | Sink:MaD:5 | -| src/main.rs:123:37:123:41 | path1 | src/main.rs:123:37:123:49 | path1.clone() | provenance | MaD:8 | +| src/main.rs:123:37:123:41 | path1 | src/main.rs:123:37:123:49 | path1.clone() | provenance | MaD:9 | | src/main.rs:123:37:123:49 | path1.clone() | src/main.rs:123:37:123:49 | path1.clone() | provenance | Sink:MaD:5 | | src/main.rs:170:16:170:29 | ...: ... [&ref] | src/main.rs:172:26:172:33 | path_str [&ref] | provenance | | | src/main.rs:170:16:170:29 | ...: ... [&ref] | src/main.rs:174:36:174:43 | path_str | provenance | Sink:MaD:2 | | src/main.rs:172:9:172:12 | path [&ref] | src/main.rs:173:8:173:11 | path | provenance | Sink:MaD:3 | | src/main.rs:172:9:172:12 | path [&ref] | src/main.rs:177:36:177:39 | path | provenance | Sink:MaD:2 | | src/main.rs:172:16:172:34 | ...::new(...) [&ref] | src/main.rs:172:9:172:12 | path [&ref] | provenance | | -| src/main.rs:172:26:172:33 | path_str [&ref] | src/main.rs:172:16:172:34 | ...::new(...) [&ref] | provenance | MaD:13 | -| src/main.rs:185:9:185:13 | path1 | src/main.rs:186:18:186:22 | path1 | provenance | | -| src/main.rs:185:17:185:32 | ...::args(...) | src/main.rs:185:17:185:32 | ...::args(...) [element] | provenance | Src:MaD:7 | -| src/main.rs:185:17:185:32 | ...::args(...) [element] | src/main.rs:185:17:185:39 | ... .nth(...) [Some] | provenance | MaD:9 | -| src/main.rs:185:17:185:39 | ... .nth(...) [Some] | src/main.rs:185:17:185:48 | ... .unwrap() | provenance | MaD:10 | -| src/main.rs:185:17:185:48 | ... .unwrap() | src/main.rs:185:9:185:13 | path1 | provenance | | -| src/main.rs:186:17:186:22 | &path1 [&ref] | src/main.rs:170:16:170:29 | ...: ... [&ref] | provenance | | -| src/main.rs:186:18:186:22 | path1 | src/main.rs:186:17:186:22 | &path1 [&ref] | provenance | | +| src/main.rs:172:26:172:33 | path_str [&ref] | src/main.rs:172:16:172:34 | ...::new(...) [&ref] | provenance | MaD:14 | +| src/main.rs:200:18:200:41 | ...: Json::<...> | src/main.rs:201:41:201:77 | \|...\| ... : ... => .. [captured path] | provenance | | +| src/main.rs:201:41:201:77 | \|...\| ... : ... => .. [captured path] | src/main.rs:201:73:201:76 | path | provenance | heuristic-callback | +| src/main.rs:201:73:201:76 | path | src/main.rs:201:73:201:76 | path | provenance | Sink:MaD:6 | +| src/main.rs:208:33:208:39 | request | src/main.rs:200:18:200:41 | ...: Json::<...> | provenance | Src:MaD:7 | +| src/main.rs:211:9:211:13 | path1 | src/main.rs:212:18:212:22 | path1 | provenance | | +| src/main.rs:211:17:211:32 | ...::args(...) | src/main.rs:211:17:211:32 | ...::args(...) [element] | provenance | Src:MaD:8 | +| src/main.rs:211:17:211:32 | ...::args(...) [element] | src/main.rs:211:17:211:39 | ... .nth(...) [Some] | provenance | MaD:10 | +| src/main.rs:211:17:211:39 | ... .nth(...) [Some] | src/main.rs:211:17:211:48 | ... .unwrap() | provenance | MaD:11 | +| src/main.rs:211:17:211:48 | ... .unwrap() | src/main.rs:211:9:211:13 | path1 | provenance | | +| src/main.rs:212:17:212:22 | &path1 [&ref] | src/main.rs:170:16:170:29 | ...: ... [&ref] | provenance | | +| src/main.rs:212:18:212:22 | path1 | src/main.rs:212:17:212:22 | &path1 [&ref] | provenance | | models | 1 | Sink: ::open; Argument[0]; path-injection | | 2 | Sink: ::open; Argument[0]; path-injection | @@ -111,15 +116,16 @@ models | 4 | Sink: ::open; Argument[0]; path-injection | | 5 | Sink: std::fs::copy; Argument[0,1]; path-injection | | 6 | Sink: std::fs::read_to_string; Argument[0]; path-injection | -| 7 | Source: std::env::args; ReturnValue.Element; commandargs | -| 8 | Summary: ::clone; Argument[self].Reference; ReturnValue; value | -| 9 | Summary: ::nth; Argument[self].Reference.Element; ReturnValue.Field[core::option::Option::Some(0)]; value | -| 10 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 11 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 12 | Summary: ::join; Argument[0]; ReturnValue; taint | -| 13 | Summary: ::new; Argument[0].Reference; ReturnValue.Reference; value | -| 14 | Summary: ::from; Argument[0].Field[alloc::borrow::Cow::Owned(0)]; ReturnValue; value | -| 15 | Summary: ::deref; Argument[self].Reference.Field[std::path::PathBuf::inner]; ReturnValue.Reference; value | +| 7 | Source: axum::routing::method_routing::post; Argument[0].Parameter[0..7]; remote | +| 8 | Source: std::env::args; ReturnValue.Element; commandargs | +| 9 | Summary: ::clone; Argument[self].Reference; ReturnValue; value | +| 10 | Summary: ::nth; Argument[self].Reference.Element; ReturnValue.Field[core::option::Option::Some(0)]; value | +| 11 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 12 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 13 | Summary: ::join; Argument[0]; ReturnValue; taint | +| 14 | Summary: ::new; Argument[0].Reference; ReturnValue.Reference; value | +| 15 | Summary: ::from; Argument[0].Field[alloc::borrow::Cow::Owned(0)]; ReturnValue; value | +| 16 | Summary: ::deref; Argument[self].Reference.Field[std::path::PathBuf::inner]; ReturnValue.Reference; value | nodes | src/main.rs:7:11:7:19 | file_name | semmle.label | file_name | | src/main.rs:9:9:9:17 | file_path | semmle.label | file_path | @@ -209,11 +215,16 @@ nodes | src/main.rs:173:8:173:11 | path | semmle.label | path | | src/main.rs:174:36:174:43 | path_str | semmle.label | path_str | | src/main.rs:177:36:177:39 | path | semmle.label | path | -| src/main.rs:185:9:185:13 | path1 | semmle.label | path1 | -| src/main.rs:185:17:185:32 | ...::args(...) | semmle.label | ...::args(...) | -| src/main.rs:185:17:185:32 | ...::args(...) [element] | semmle.label | ...::args(...) [element] | -| src/main.rs:185:17:185:39 | ... .nth(...) [Some] | semmle.label | ... .nth(...) [Some] | -| src/main.rs:185:17:185:48 | ... .unwrap() | semmle.label | ... .unwrap() | -| src/main.rs:186:17:186:22 | &path1 [&ref] | semmle.label | &path1 [&ref] | -| src/main.rs:186:18:186:22 | path1 | semmle.label | path1 | +| src/main.rs:200:18:200:41 | ...: Json::<...> | semmle.label | ...: Json::<...> | +| src/main.rs:201:41:201:77 | \|...\| ... : ... => .. [captured path] | semmle.label | \|...\| ... : ... => .. [captured path] | +| src/main.rs:201:73:201:76 | path | semmle.label | path | +| src/main.rs:201:73:201:76 | path | semmle.label | path | +| src/main.rs:208:33:208:39 | request | semmle.label | request | +| src/main.rs:211:9:211:13 | path1 | semmle.label | path1 | +| src/main.rs:211:17:211:32 | ...::args(...) | semmle.label | ...::args(...) | +| src/main.rs:211:17:211:32 | ...::args(...) [element] | semmle.label | ...::args(...) [element] | +| src/main.rs:211:17:211:39 | ... .nth(...) [Some] | semmle.label | ... .nth(...) [Some] | +| src/main.rs:211:17:211:48 | ... .unwrap() | semmle.label | ... .unwrap() | +| src/main.rs:212:17:212:22 | &path1 [&ref] | semmle.label | &path1 [&ref] | +| src/main.rs:212:18:212:22 | path1 | semmle.label | path1 | subpaths diff --git a/rust/ql/test/query-tests/security/CWE-022/options.yml b/rust/ql/test/query-tests/security/CWE-022/options.yml index 18392052c7c5..2c0b985581ec 100644 --- a/rust/ql/test/query-tests/security/CWE-022/options.yml +++ b/rust/ql/test/query-tests/security/CWE-022/options.yml @@ -3,3 +3,4 @@ qltest_dependencies: - poem = { version = "3.1.7" } - tokio = { version = "1.43.0", features = ["full"] } - async-std = { version = "1.13.1" } + - axum = { version = "0.8.4" } \ No newline at end of file diff --git a/rust/ql/test/query-tests/security/CWE-022/src/main.rs b/rust/ql/test/query-tests/security/CWE-022/src/main.rs index f686fdf1d95b..5f1a11c40d55 100644 --- a/rust/ql/test/query-tests/security/CWE-022/src/main.rs +++ b/rust/ql/test/query-tests/security/CWE-022/src/main.rs @@ -181,7 +181,33 @@ fn my_function(path_str: &str) -> Result<(), std::io::Error> { Ok(()) } +use axum::{extract::State, routing::{get, post}, Json, Router}; +use std::sync::Arc; + +struct Config { + path: String, +} + +async fn destructured(State(config): State>) { + let _ = tokio::task::spawn_blocking(move || std::fs::read_to_string(&config.path)).await; // $ path-injection-sink +} + +async fn local_clone(state: State>) { + let config = Arc::clone(&state.0); + let _ = tokio::task::spawn_blocking(move || std::fs::read_to_string(&config.path)).await; // $ path-injection-sink +} + +async fn request(Json(path): Json) { + let _ = tokio::task::spawn_blocking(move || std::fs::read_to_string(path)).await; // $ Alert[rust/path-injection]=s3 path-injection-sink +} + fn main() { + let _: Router = Router::new() + .route("/destructured", get(destructured)) + .route("/local-clone", get(local_clone)) + .route("/request", post(request)) // $ Source=s3 + .with_state(Arc::new(Config { path: String::from("configured-file") })); + let path1 = std::env::args().nth(1).unwrap(); // $ Source=arg2 my_function(&path1); } diff --git a/rust/ql/test/query-tests/security/CWE-502/UnsafeDeserialization.expected b/rust/ql/test/query-tests/security/CWE-502/UnsafeDeserialization.expected new file mode 100644 index 000000000000..95e11221ac7d --- /dev/null +++ b/rust/ql/test/query-tests/security/CWE-502/UnsafeDeserialization.expected @@ -0,0 +1,232 @@ +#select +| main.rs:33:53:33:65 | &remote_bytes | main.rs:15:24:15:68 | ...::get(...) | main.rs:33:53:33:65 | &remote_bytes | This deserialization operation processes $@ without validation. | main.rs:15:24:15:68 | ...::get(...) | user-provided data | +| main.rs:36:51:36:64 | &remote_string | main.rs:19:25:19:69 | ...::get(...) | main.rs:36:51:36:64 | &remote_string | This deserialization operation processes $@ without validation. | main.rs:19:25:19:69 | ...::get(...) | user-provided data | +| main.rs:46:48:46:60 | &remote_bytes | main.rs:40:24:40:72 | ...::get(...) | main.rs:46:48:46:60 | &remote_bytes | This deserialization operation processes $@ without validation. | main.rs:40:24:40:72 | ...::get(...) | user-provided data | +| main.rs:58:52:58:65 | &remote_string | main.rs:50:25:50:69 | ...::get(...) | main.rs:58:52:58:65 | &remote_string | This deserialization operation processes $@ without validation. | main.rs:50:25:50:69 | ...::get(...) | user-provided data | +| main.rs:72:51:72:67 | &... | main.rs:63:24:63:72 | ...::get(...) | main.rs:72:51:72:67 | &... | This deserialization operation processes $@ without validation. | main.rs:63:24:63:72 | ...::get(...) | user-provided data | +| main.rs:73:54:73:70 | &... | main.rs:63:24:63:72 | ...::get(...) | main.rs:73:54:73:70 | &... | This deserialization operation processes $@ without validation. | main.rs:63:24:63:72 | ...::get(...) | user-provided data | +| main.rs:74:56:74:68 | &remote_bytes | main.rs:63:24:63:72 | ...::get(...) | main.rs:74:56:74:68 | &remote_bytes | This deserialization operation processes $@ without validation. | main.rs:63:24:63:72 | ...::get(...) | user-provided data | +| main.rs:75:56:75:72 | &... | main.rs:63:24:63:72 | ...::get(...) | main.rs:75:56:75:72 | &... | This deserialization operation processes $@ without validation. | main.rs:63:24:63:72 | ...::get(...) | user-provided data | +| main.rs:76:47:76:63 | &... | main.rs:63:24:63:72 | ...::get(...) | main.rs:76:47:76:63 | &... | This deserialization operation processes $@ without validation. | main.rs:63:24:63:72 | ...::get(...) | user-provided data | +| main.rs:77:50:77:63 | &remote_string | main.rs:67:25:67:73 | ...::get(...) | main.rs:77:50:77:63 | &remote_string | This deserialization operation processes $@ without validation. | main.rs:67:25:67:73 | ...::get(...) | user-provided data | +| main.rs:78:54:78:66 | &remote_bytes | main.rs:63:24:63:72 | ...::get(...) | main.rs:78:54:78:66 | &remote_bytes | This deserialization operation processes $@ without validation. | main.rs:63:24:63:72 | ...::get(...) | user-provided data | +| main.rs:79:56:79:72 | &... | main.rs:63:24:63:72 | ...::get(...) | main.rs:79:56:79:72 | &... | This deserialization operation processes $@ without validation. | main.rs:63:24:63:72 | ...::get(...) | user-provided data | +| main.rs:80:40:80:53 | &remote_string | main.rs:67:25:67:73 | ...::get(...) | main.rs:80:40:80:53 | &remote_string | This deserialization operation processes $@ without validation. | main.rs:67:25:67:73 | ...::get(...) | user-provided data | +| main.rs:81:54:81:93 | ...::String(...) | main.rs:67:25:67:73 | ...::get(...) | main.rs:81:54:81:93 | ...::String(...) | This deserialization operation processes $@ without validation. | main.rs:67:25:67:73 | ...::get(...) | user-provided data | +| main.rs:95:32:95:35 | body | main.rs:133:24:133:72 | ...::get(...) | main.rs:95:32:95:35 | body | This deserialization operation processes $@ without validation. | main.rs:133:24:133:72 | ...::get(...) | user-provided data | +| main.rs:128:32:128:35 | body | main.rs:133:24:133:72 | ...::get(...) | main.rs:128:32:128:35 | body | This deserialization operation processes $@ without validation. | main.rs:133:24:133:72 | ...::get(...) | user-provided data | +edges +| main.rs:15:9:15:20 | remote_bytes | main.rs:33:54:33:65 | remote_bytes | provenance | | +| main.rs:15:24:15:68 | ...::get(...) | main.rs:15:24:15:68 | ...::get(...) [Ok] | provenance | Src:MaD:14 | +| main.rs:15:24:15:68 | ...::get(...) [Ok] | main.rs:15:24:16:17 | ... .unwrap() | provenance | MaD:16 | +| main.rs:15:24:16:17 | ... .unwrap() | main.rs:15:24:17:16 | ... .bytes() [Ok] | provenance | MaD:18 | +| main.rs:15:24:17:16 | ... .bytes() [Ok] | main.rs:15:24:18:17 | ... .unwrap() | provenance | MaD:16 | +| main.rs:15:24:18:17 | ... .unwrap() | main.rs:15:9:15:20 | remote_bytes | provenance | | +| main.rs:19:9:19:21 | remote_string | main.rs:36:52:36:64 | remote_string | provenance | | +| main.rs:19:25:19:69 | ...::get(...) | main.rs:19:25:19:69 | ...::get(...) [Ok] | provenance | Src:MaD:14 | +| main.rs:19:25:19:69 | ...::get(...) [Ok] | main.rs:19:25:20:17 | ... .unwrap() | provenance | MaD:16 | +| main.rs:19:25:20:17 | ... .unwrap() | main.rs:19:25:21:15 | ... .text() [Ok] | provenance | MaD:19 | +| main.rs:19:25:21:15 | ... .text() [Ok] | main.rs:19:25:22:38 | ... .unwrap_or(...) | provenance | MaD:17 | +| main.rs:19:25:22:38 | ... .unwrap_or(...) | main.rs:19:9:19:21 | remote_string | provenance | | +| main.rs:33:53:33:65 | &remote_bytes [&ref] | main.rs:33:53:33:65 | &remote_bytes | provenance | Sink:MaD:7 | +| main.rs:33:54:33:65 | remote_bytes | main.rs:33:53:33:65 | &remote_bytes [&ref] | provenance | | +| main.rs:36:51:36:64 | &remote_string [&ref] | main.rs:36:51:36:64 | &remote_string | provenance | Sink:MaD:8 | +| main.rs:36:52:36:64 | remote_string | main.rs:36:51:36:64 | &remote_string [&ref] | provenance | | +| main.rs:40:9:40:20 | remote_bytes | main.rs:46:49:46:60 | remote_bytes | provenance | | +| main.rs:40:24:40:72 | ...::get(...) | main.rs:40:24:40:72 | ...::get(...) [Ok] | provenance | Src:MaD:14 | +| main.rs:40:24:40:72 | ...::get(...) [Ok] | main.rs:40:24:41:17 | ... .unwrap() | provenance | MaD:16 | +| main.rs:40:24:41:17 | ... .unwrap() | main.rs:40:24:42:16 | ... .bytes() [Ok] | provenance | MaD:18 | +| main.rs:40:24:42:16 | ... .bytes() [Ok] | main.rs:40:24:43:17 | ... .unwrap() | provenance | MaD:16 | +| main.rs:40:24:43:17 | ... .unwrap() | main.rs:40:9:40:20 | remote_bytes | provenance | | +| main.rs:46:48:46:60 | &remote_bytes [&ref] | main.rs:46:48:46:60 | &remote_bytes | provenance | Sink:MaD:1 | +| main.rs:46:49:46:60 | remote_bytes | main.rs:46:48:46:60 | &remote_bytes [&ref] | provenance | | +| main.rs:50:9:50:21 | remote_string | main.rs:58:53:58:65 | remote_string | provenance | | +| main.rs:50:25:50:69 | ...::get(...) | main.rs:50:25:50:69 | ...::get(...) [Ok] | provenance | Src:MaD:14 | +| main.rs:50:25:50:69 | ...::get(...) [Ok] | main.rs:50:25:51:17 | ... .unwrap() | provenance | MaD:16 | +| main.rs:50:25:51:17 | ... .unwrap() | main.rs:50:25:52:15 | ... .text() [Ok] | provenance | MaD:19 | +| main.rs:50:25:52:15 | ... .text() [Ok] | main.rs:50:25:53:38 | ... .unwrap_or(...) | provenance | MaD:17 | +| main.rs:50:25:53:38 | ... .unwrap_or(...) | main.rs:50:9:50:21 | remote_string | provenance | | +| main.rs:58:52:58:65 | &remote_string [&ref] | main.rs:58:52:58:65 | &remote_string | provenance | Sink:MaD:8 | +| main.rs:58:53:58:65 | remote_string | main.rs:58:52:58:65 | &remote_string [&ref] | provenance | | +| main.rs:63:9:63:20 | remote_bytes | main.rs:72:52:72:63 | remote_bytes | provenance | | +| main.rs:63:9:63:20 | remote_bytes | main.rs:72:52:72:67 | remote_bytes[...] | provenance | | +| main.rs:63:9:63:20 | remote_bytes | main.rs:73:55:73:66 | remote_bytes | provenance | | +| main.rs:63:9:63:20 | remote_bytes | main.rs:73:55:73:70 | remote_bytes[...] | provenance | | +| main.rs:63:9:63:20 | remote_bytes | main.rs:74:57:74:68 | remote_bytes | provenance | | +| main.rs:63:9:63:20 | remote_bytes | main.rs:75:57:75:68 | remote_bytes | provenance | | +| main.rs:63:9:63:20 | remote_bytes | main.rs:75:57:75:72 | remote_bytes[...] | provenance | | +| main.rs:63:9:63:20 | remote_bytes | main.rs:76:48:76:59 | remote_bytes | provenance | | +| main.rs:63:9:63:20 | remote_bytes | main.rs:76:48:76:63 | remote_bytes[...] | provenance | | +| main.rs:63:9:63:20 | remote_bytes | main.rs:78:55:78:66 | remote_bytes | provenance | | +| main.rs:63:9:63:20 | remote_bytes | main.rs:79:57:79:68 | remote_bytes | provenance | | +| main.rs:63:9:63:20 | remote_bytes | main.rs:79:57:79:72 | remote_bytes[...] | provenance | | +| main.rs:63:24:63:72 | ...::get(...) | main.rs:63:24:63:72 | ...::get(...) [Ok] | provenance | Src:MaD:14 | +| main.rs:63:24:63:72 | ...::get(...) [Ok] | main.rs:63:24:64:17 | ... .unwrap() | provenance | MaD:16 | +| main.rs:63:24:64:17 | ... .unwrap() | main.rs:63:24:65:16 | ... .bytes() [Ok] | provenance | MaD:18 | +| main.rs:63:24:65:16 | ... .bytes() [Ok] | main.rs:63:24:66:17 | ... .unwrap() | provenance | MaD:16 | +| main.rs:63:24:66:17 | ... .unwrap() | main.rs:63:9:63:20 | remote_bytes | provenance | | +| main.rs:67:9:67:21 | remote_string | main.rs:77:51:77:63 | remote_string | provenance | | +| main.rs:67:9:67:21 | remote_string | main.rs:80:41:80:53 | remote_string | provenance | | +| main.rs:67:9:67:21 | remote_string | main.rs:81:80:81:92 | remote_string | provenance | | +| main.rs:67:25:67:73 | ...::get(...) | main.rs:67:25:67:73 | ...::get(...) [Ok] | provenance | Src:MaD:14 | +| main.rs:67:25:67:73 | ...::get(...) [Ok] | main.rs:67:25:68:17 | ... .unwrap() | provenance | MaD:16 | +| main.rs:67:25:68:17 | ... .unwrap() | main.rs:67:25:69:15 | ... .text() [Ok] | provenance | MaD:19 | +| main.rs:67:25:69:15 | ... .text() [Ok] | main.rs:67:25:70:17 | ... .unwrap() | provenance | MaD:16 | +| main.rs:67:25:70:17 | ... .unwrap() | main.rs:67:9:67:21 | remote_string | provenance | | +| main.rs:72:51:72:67 | &... [&ref] | main.rs:72:51:72:67 | &... | provenance | Sink:MaD:6 | +| main.rs:72:52:72:63 | remote_bytes | main.rs:72:52:72:67 | remote_bytes[...] | provenance | MaD:15 | +| main.rs:72:52:72:67 | remote_bytes[...] | main.rs:72:51:72:67 | &... [&ref] | provenance | | +| main.rs:73:54:73:70 | &... [&ref] | main.rs:73:54:73:70 | &... | provenance | Sink:MaD:2 | +| main.rs:73:55:73:66 | remote_bytes | main.rs:73:55:73:70 | remote_bytes[...] | provenance | MaD:15 | +| main.rs:73:55:73:70 | remote_bytes[...] | main.rs:73:54:73:70 | &... [&ref] | provenance | | +| main.rs:74:56:74:68 | &remote_bytes [&ref] | main.rs:74:56:74:68 | &remote_bytes | provenance | Sink:MaD:5 | +| main.rs:74:57:74:68 | remote_bytes | main.rs:74:56:74:68 | &remote_bytes [&ref] | provenance | | +| main.rs:75:56:75:72 | &... [&ref] | main.rs:75:56:75:72 | &... | provenance | Sink:MaD:4 | +| main.rs:75:57:75:68 | remote_bytes | main.rs:75:57:75:72 | remote_bytes[...] | provenance | MaD:15 | +| main.rs:75:57:75:72 | remote_bytes[...] | main.rs:75:56:75:72 | &... [&ref] | provenance | | +| main.rs:76:47:76:63 | &... [&ref] | main.rs:76:47:76:63 | &... | provenance | Sink:MaD:3 | +| main.rs:76:48:76:59 | remote_bytes | main.rs:76:48:76:63 | remote_bytes[...] | provenance | MaD:15 | +| main.rs:76:48:76:63 | remote_bytes[...] | main.rs:76:47:76:63 | &... [&ref] | provenance | | +| main.rs:77:50:77:63 | &remote_string [&ref] | main.rs:77:50:77:63 | &remote_string | provenance | Sink:MaD:12 | +| main.rs:77:51:77:63 | remote_string | main.rs:77:50:77:63 | &remote_string [&ref] | provenance | | +| main.rs:78:54:78:66 | &remote_bytes [&ref] | main.rs:78:54:78:66 | &remote_bytes | provenance | Sink:MaD:11 | +| main.rs:78:55:78:66 | remote_bytes | main.rs:78:54:78:66 | &remote_bytes [&ref] | provenance | | +| main.rs:79:56:79:72 | &... [&ref] | main.rs:79:56:79:72 | &... | provenance | Sink:MaD:10 | +| main.rs:79:57:79:68 | remote_bytes | main.rs:79:57:79:72 | remote_bytes[...] | provenance | MaD:15 | +| main.rs:79:57:79:72 | remote_bytes[...] | main.rs:79:56:79:72 | &... [&ref] | provenance | | +| main.rs:80:40:80:53 | &remote_string [&ref] | main.rs:80:40:80:53 | &remote_string | provenance | Sink:MaD:13 | +| main.rs:80:41:80:53 | remote_string | main.rs:80:40:80:53 | &remote_string [&ref] | provenance | | +| main.rs:81:54:81:93 | ...::String(...) [String] | main.rs:81:54:81:93 | ...::String(...) | provenance | Sink:MaD:9 | +| main.rs:81:80:81:92 | remote_string | main.rs:81:54:81:93 | ...::String(...) [String] | provenance | | +| main.rs:93:27:93:37 | ...: ... [&ref] | main.rs:95:32:95:35 | body | provenance | Sink:MaD:7 | +| main.rs:123:27:123:37 | ...: ... [&ref] | main.rs:128:32:128:35 | body | provenance | Sink:MaD:7 | +| main.rs:133:9:133:20 | remote_bytes | main.rs:142:48:142:59 | remote_bytes | provenance | | +| main.rs:133:9:133:20 | remote_bytes | main.rs:143:49:143:60 | remote_bytes | provenance | | +| main.rs:133:24:133:72 | ...::get(...) | main.rs:133:24:133:72 | ...::get(...) [Ok] | provenance | Src:MaD:14 | +| main.rs:133:24:133:72 | ...::get(...) [Ok] | main.rs:133:24:134:17 | ... .unwrap() | provenance | MaD:16 | +| main.rs:133:24:134:17 | ... .unwrap() | main.rs:133:24:135:16 | ... .bytes() [Ok] | provenance | MaD:18 | +| main.rs:133:24:135:16 | ... .bytes() [Ok] | main.rs:133:24:136:17 | ... .unwrap() | provenance | MaD:16 | +| main.rs:133:24:136:17 | ... .unwrap() | main.rs:133:9:133:20 | remote_bytes | provenance | | +| main.rs:142:47:142:59 | &remote_bytes [&ref] | main.rs:93:27:93:37 | ...: ... [&ref] | provenance | | +| main.rs:142:48:142:59 | remote_bytes | main.rs:142:47:142:59 | &remote_bytes [&ref] | provenance | | +| main.rs:143:48:143:60 | &remote_bytes [&ref] | main.rs:123:27:123:37 | ...: ... [&ref] | provenance | | +| main.rs:143:49:143:60 | remote_bytes | main.rs:143:48:143:60 | &remote_bytes [&ref] | provenance | | +models +| 1 | Sink: bincode::deserialize; Argument[0]; unsafe-deserialization | +| 2 | Sink: bincode::deserialize_from; Argument[0]; unsafe-deserialization | +| 3 | Sink: ciborium::de::from_reader; Argument[0]; unsafe-deserialization | +| 4 | Sink: rmp_serde::decode::from_read; Argument[0]; unsafe-deserialization | +| 5 | Sink: rmp_serde::decode::from_slice; Argument[0]; unsafe-deserialization | +| 6 | Sink: serde_json::de::from_reader; Argument[0]; unsafe-deserialization | +| 7 | Sink: serde_json::de::from_slice; Argument[0]; unsafe-deserialization | +| 8 | Sink: serde_json::de::from_str; Argument[0]; unsafe-deserialization | +| 9 | Sink: serde_json::value::from_value; Argument[0].Field[serde_json::value::Value::String(0)]; unsafe-deserialization | +| 10 | Sink: serde_yaml::de::from_reader; Argument[0]; unsafe-deserialization | +| 11 | Sink: serde_yaml::de::from_slice; Argument[0]; unsafe-deserialization | +| 12 | Sink: serde_yaml::de::from_str; Argument[0]; unsafe-deserialization | +| 13 | Sink: toml::de::from_str; Argument[0]; unsafe-deserialization | +| 14 | Source: reqwest::blocking::get; ReturnValue.Field[core::result::Result::Ok(0)]; remote | +| 15 | Summary: ::deref; Argument[self].Reference; ReturnValue.Reference; taint | +| 16 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 17 | Summary: ::unwrap_or; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 18 | Summary: ::bytes; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 19 | Summary: ::text; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +nodes +| main.rs:15:9:15:20 | remote_bytes | semmle.label | remote_bytes | +| main.rs:15:24:15:68 | ...::get(...) | semmle.label | ...::get(...) | +| main.rs:15:24:15:68 | ...::get(...) [Ok] | semmle.label | ...::get(...) [Ok] | +| main.rs:15:24:16:17 | ... .unwrap() | semmle.label | ... .unwrap() | +| main.rs:15:24:17:16 | ... .bytes() [Ok] | semmle.label | ... .bytes() [Ok] | +| main.rs:15:24:18:17 | ... .unwrap() | semmle.label | ... .unwrap() | +| main.rs:19:9:19:21 | remote_string | semmle.label | remote_string | +| main.rs:19:25:19:69 | ...::get(...) | semmle.label | ...::get(...) | +| main.rs:19:25:19:69 | ...::get(...) [Ok] | semmle.label | ...::get(...) [Ok] | +| main.rs:19:25:20:17 | ... .unwrap() | semmle.label | ... .unwrap() | +| main.rs:19:25:21:15 | ... .text() [Ok] | semmle.label | ... .text() [Ok] | +| main.rs:19:25:22:38 | ... .unwrap_or(...) | semmle.label | ... .unwrap_or(...) | +| main.rs:33:53:33:65 | &remote_bytes | semmle.label | &remote_bytes | +| main.rs:33:53:33:65 | &remote_bytes [&ref] | semmle.label | &remote_bytes [&ref] | +| main.rs:33:54:33:65 | remote_bytes | semmle.label | remote_bytes | +| main.rs:36:51:36:64 | &remote_string | semmle.label | &remote_string | +| main.rs:36:51:36:64 | &remote_string [&ref] | semmle.label | &remote_string [&ref] | +| main.rs:36:52:36:64 | remote_string | semmle.label | remote_string | +| main.rs:40:9:40:20 | remote_bytes | semmle.label | remote_bytes | +| main.rs:40:24:40:72 | ...::get(...) | semmle.label | ...::get(...) | +| main.rs:40:24:40:72 | ...::get(...) [Ok] | semmle.label | ...::get(...) [Ok] | +| main.rs:40:24:41:17 | ... .unwrap() | semmle.label | ... .unwrap() | +| main.rs:40:24:42:16 | ... .bytes() [Ok] | semmle.label | ... .bytes() [Ok] | +| main.rs:40:24:43:17 | ... .unwrap() | semmle.label | ... .unwrap() | +| main.rs:46:48:46:60 | &remote_bytes | semmle.label | &remote_bytes | +| main.rs:46:48:46:60 | &remote_bytes [&ref] | semmle.label | &remote_bytes [&ref] | +| main.rs:46:49:46:60 | remote_bytes | semmle.label | remote_bytes | +| main.rs:50:9:50:21 | remote_string | semmle.label | remote_string | +| main.rs:50:25:50:69 | ...::get(...) | semmle.label | ...::get(...) | +| main.rs:50:25:50:69 | ...::get(...) [Ok] | semmle.label | ...::get(...) [Ok] | +| main.rs:50:25:51:17 | ... .unwrap() | semmle.label | ... .unwrap() | +| main.rs:50:25:52:15 | ... .text() [Ok] | semmle.label | ... .text() [Ok] | +| main.rs:50:25:53:38 | ... .unwrap_or(...) | semmle.label | ... .unwrap_or(...) | +| main.rs:58:52:58:65 | &remote_string | semmle.label | &remote_string | +| main.rs:58:52:58:65 | &remote_string [&ref] | semmle.label | &remote_string [&ref] | +| main.rs:58:53:58:65 | remote_string | semmle.label | remote_string | +| main.rs:63:9:63:20 | remote_bytes | semmle.label | remote_bytes | +| main.rs:63:24:63:72 | ...::get(...) | semmle.label | ...::get(...) | +| main.rs:63:24:63:72 | ...::get(...) [Ok] | semmle.label | ...::get(...) [Ok] | +| main.rs:63:24:64:17 | ... .unwrap() | semmle.label | ... .unwrap() | +| main.rs:63:24:65:16 | ... .bytes() [Ok] | semmle.label | ... .bytes() [Ok] | +| main.rs:63:24:66:17 | ... .unwrap() | semmle.label | ... .unwrap() | +| main.rs:67:9:67:21 | remote_string | semmle.label | remote_string | +| main.rs:67:25:67:73 | ...::get(...) | semmle.label | ...::get(...) | +| main.rs:67:25:67:73 | ...::get(...) [Ok] | semmle.label | ...::get(...) [Ok] | +| main.rs:67:25:68:17 | ... .unwrap() | semmle.label | ... .unwrap() | +| main.rs:67:25:69:15 | ... .text() [Ok] | semmle.label | ... .text() [Ok] | +| main.rs:67:25:70:17 | ... .unwrap() | semmle.label | ... .unwrap() | +| main.rs:72:51:72:67 | &... | semmle.label | &... | +| main.rs:72:51:72:67 | &... [&ref] | semmle.label | &... [&ref] | +| main.rs:72:52:72:63 | remote_bytes | semmle.label | remote_bytes | +| main.rs:72:52:72:67 | remote_bytes[...] | semmle.label | remote_bytes[...] | +| main.rs:73:54:73:70 | &... | semmle.label | &... | +| main.rs:73:54:73:70 | &... [&ref] | semmle.label | &... [&ref] | +| main.rs:73:55:73:66 | remote_bytes | semmle.label | remote_bytes | +| main.rs:73:55:73:70 | remote_bytes[...] | semmle.label | remote_bytes[...] | +| main.rs:74:56:74:68 | &remote_bytes | semmle.label | &remote_bytes | +| main.rs:74:56:74:68 | &remote_bytes [&ref] | semmle.label | &remote_bytes [&ref] | +| main.rs:74:57:74:68 | remote_bytes | semmle.label | remote_bytes | +| main.rs:75:56:75:72 | &... | semmle.label | &... | +| main.rs:75:56:75:72 | &... [&ref] | semmle.label | &... [&ref] | +| main.rs:75:57:75:68 | remote_bytes | semmle.label | remote_bytes | +| main.rs:75:57:75:72 | remote_bytes[...] | semmle.label | remote_bytes[...] | +| main.rs:76:47:76:63 | &... | semmle.label | &... | +| main.rs:76:47:76:63 | &... [&ref] | semmle.label | &... [&ref] | +| main.rs:76:48:76:59 | remote_bytes | semmle.label | remote_bytes | +| main.rs:76:48:76:63 | remote_bytes[...] | semmle.label | remote_bytes[...] | +| main.rs:77:50:77:63 | &remote_string | semmle.label | &remote_string | +| main.rs:77:50:77:63 | &remote_string [&ref] | semmle.label | &remote_string [&ref] | +| main.rs:77:51:77:63 | remote_string | semmle.label | remote_string | +| main.rs:78:54:78:66 | &remote_bytes | semmle.label | &remote_bytes | +| main.rs:78:54:78:66 | &remote_bytes [&ref] | semmle.label | &remote_bytes [&ref] | +| main.rs:78:55:78:66 | remote_bytes | semmle.label | remote_bytes | +| main.rs:79:56:79:72 | &... | semmle.label | &... | +| main.rs:79:56:79:72 | &... [&ref] | semmle.label | &... [&ref] | +| main.rs:79:57:79:68 | remote_bytes | semmle.label | remote_bytes | +| main.rs:79:57:79:72 | remote_bytes[...] | semmle.label | remote_bytes[...] | +| main.rs:80:40:80:53 | &remote_string | semmle.label | &remote_string | +| main.rs:80:40:80:53 | &remote_string [&ref] | semmle.label | &remote_string [&ref] | +| main.rs:80:41:80:53 | remote_string | semmle.label | remote_string | +| main.rs:81:54:81:93 | ...::String(...) | semmle.label | ...::String(...) | +| main.rs:81:54:81:93 | ...::String(...) [String] | semmle.label | ...::String(...) [String] | +| main.rs:81:80:81:92 | remote_string | semmle.label | remote_string | +| main.rs:93:27:93:37 | ...: ... [&ref] | semmle.label | ...: ... [&ref] | +| main.rs:95:32:95:35 | body | semmle.label | body | +| main.rs:123:27:123:37 | ...: ... [&ref] | semmle.label | ...: ... [&ref] | +| main.rs:128:32:128:35 | body | semmle.label | body | +| main.rs:133:9:133:20 | remote_bytes | semmle.label | remote_bytes | +| main.rs:133:24:133:72 | ...::get(...) | semmle.label | ...::get(...) | +| main.rs:133:24:133:72 | ...::get(...) [Ok] | semmle.label | ...::get(...) [Ok] | +| main.rs:133:24:134:17 | ... .unwrap() | semmle.label | ... .unwrap() | +| main.rs:133:24:135:16 | ... .bytes() [Ok] | semmle.label | ... .bytes() [Ok] | +| main.rs:133:24:136:17 | ... .unwrap() | semmle.label | ... .unwrap() | +| main.rs:142:47:142:59 | &remote_bytes [&ref] | semmle.label | &remote_bytes [&ref] | +| main.rs:142:48:142:59 | remote_bytes | semmle.label | remote_bytes | +| main.rs:143:48:143:60 | &remote_bytes [&ref] | semmle.label | &remote_bytes [&ref] | +| main.rs:143:49:143:60 | remote_bytes | semmle.label | remote_bytes | +subpaths diff --git a/rust/ql/test/query-tests/security/CWE-502/UnsafeDeserialization.qlref b/rust/ql/test/query-tests/security/CWE-502/UnsafeDeserialization.qlref new file mode 100644 index 000000000000..26ecd83ac0b3 --- /dev/null +++ b/rust/ql/test/query-tests/security/CWE-502/UnsafeDeserialization.qlref @@ -0,0 +1,4 @@ +query: queries/security/CWE-502/UnsafeDeserialization.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/rust/ql/test/query-tests/security/CWE-502/main.rs b/rust/ql/test/query-tests/security/CWE-502/main.rs new file mode 100644 index 000000000000..e5f860bccddf --- /dev/null +++ b/rust/ql/test/query-tests/security/CWE-502/main.rs @@ -0,0 +1,144 @@ +use serde::Deserialize; + +#[derive(Deserialize)] +struct UserData { + name: String, + items: Vec, +} + +#[derive(Deserialize)] +struct Config { + setting: String, +} + +fn test_serde_json_deserialization() { + let remote_bytes = reqwest::blocking::get("http://example.com/") // $ Source=remote1 + .unwrap() + .bytes() + .unwrap(); + let remote_string = reqwest::blocking::get("http://example.com/") // $ Source=remote2 + .unwrap() + .text() + .unwrap_or(String::from("{}")); + let const_string = String::from(r#"{"name": "test", "items": []}"#); + + // --- safe cases --- + + // Constant data deserialization + let _safe: UserData = serde_json::from_str(&const_string).unwrap(); // safe + + // --- unsafe cases --- + + // Remote bytes directly deserialized + let _unsafe1: UserData = serde_json::from_slice(&remote_bytes).unwrap(); // $ Alert[rust/unsafe-deserialization]=remote1 + + // Remote string directly deserialized + let _unsafe2: UserData = serde_json::from_str(&remote_string).unwrap(); // $ Alert[rust/unsafe-deserialization]=remote2 +} + +fn test_bincode_deserialization() { + let remote_bytes = reqwest::blocking::get("http://example.com/data") // $ Source=remote3 + .unwrap() + .bytes() + .unwrap(); + + // Unsafe: remote data deserialized with bincode + let _unsafe: Config = bincode::deserialize(&remote_bytes).unwrap(); // $ Alert[rust/unsafe-deserialization]=remote3 +} + +fn test_safe_with_validation() { + let remote_string = reqwest::blocking::get("http://example.com/") // $ Source=remote4 + .unwrap() + .text() + .unwrap_or(String::from("{}")); + + // Safe: size check before deserialization (still flagged as the barrier + // is not modeled as a data flow barrier, but demonstrates the pattern) + if remote_string.len() < 1024 { + let _data: UserData = serde_json::from_str(&remote_string).unwrap(); // $ SPURIOUS: Alert[rust/unsafe-deserialization]=remote4 + } +} + +fn test_other_deserialization_models() { + let remote_bytes = reqwest::blocking::get("http://example.com/data") // $ Source=remote5 + .unwrap() + .bytes() + .unwrap(); + let remote_string = reqwest::blocking::get("http://example.com/data") // $ Source=remote6 + .unwrap() + .text() + .unwrap(); + + let _json: UserData = serde_json::from_reader(&remote_bytes[..]).unwrap(); // $ Alert[rust/unsafe-deserialization]=remote5 + let _bincode: Config = bincode::deserialize_from(&remote_bytes[..]).unwrap(); // $ Alert[rust/unsafe-deserialization]=remote5 + let _msgpack_slice: Config = rmp_serde::from_slice(&remote_bytes).unwrap(); // $ Alert[rust/unsafe-deserialization]=remote5 + let _msgpack_reader: Config = rmp_serde::from_read(&remote_bytes[..]).unwrap(); // $ Alert[rust/unsafe-deserialization]=remote5 + let _cbor: Config = ciborium::from_reader(&remote_bytes[..]).unwrap(); // $ Alert[rust/unsafe-deserialization]=remote5 + let _yaml_str: Config = serde_yaml::from_str(&remote_string).unwrap(); // $ Alert[rust/unsafe-deserialization]=remote6 + let _yaml_slice: Config = serde_yaml::from_slice(&remote_bytes).unwrap(); // $ Alert[rust/unsafe-deserialization]=remote5 + let _yaml_reader: Config = serde_yaml::from_reader(&remote_bytes[..]).unwrap(); // $ Alert[rust/unsafe-deserialization]=remote5 + let _toml: Config = toml::from_str(&remote_string).unwrap(); // $ Alert[rust/unsafe-deserialization]=remote6 + let _json_value: String = serde_json::from_value(serde_json::Value::String(remote_string)).unwrap(); // $ Alert[rust/unsafe-deserialization]=remote6 +} + +mod qhelp_example_bad { + use serde::Deserialize; + + #[derive(Deserialize)] + pub struct UserData { + name: String, + items: Vec, + } + + pub fn handle_request(body: &[u8]) -> UserData { + // BAD: deserializing user-controlled data without size validation + serde_json::from_slice(body).unwrap() // $ Alert[rust/unsafe-deserialization]=remote7 + } +} + +mod qhelp_example_good { + use serde::Deserialize; + + const MAX_BODY_SIZE: usize = 1024 * 1024; // 1 MB limit + + #[derive(Deserialize)] + #[serde(deny_unknown_fields)] + pub struct UserData { + name: String, + #[serde(deserialize_with = "bounded_vec")] + items: Vec, + } + + fn bounded_vec<'de, D>(deserializer: D) -> Result, D::Error> + where + D: serde::Deserializer<'de>, + { + let v = Vec::::deserialize(deserializer)?; + if v.len() > 100 { + return Err(serde::de::Error::custom("too many items")); + } + Ok(v) + } + + pub fn handle_request(body: &[u8]) -> Result { + // GOOD: validate input size before deserialization, use bounded containers + if body.len() > MAX_BODY_SIZE { + return Err("payload too large".to_string()); + } + serde_json::from_slice(body).map_err(|e| e.to_string()) // $ SPURIOUS: Alert[rust/unsafe-deserialization]=remote7 + } +} + +fn main() { + let remote_bytes = reqwest::blocking::get("http://example.com/data") // $ Source=remote7 + .unwrap() + .bytes() + .unwrap(); + + test_serde_json_deserialization(); + test_bincode_deserialization(); + test_safe_with_validation(); + test_other_deserialization_models(); + let _ = qhelp_example_bad::handle_request(&remote_bytes); + let _ = qhelp_example_good::handle_request(&remote_bytes); +} diff --git a/rust/ql/test/query-tests/security/CWE-502/options.yml b/rust/ql/test/query-tests/security/CWE-502/options.yml new file mode 100644 index 000000000000..bbfa47291512 --- /dev/null +++ b/rust/ql/test/query-tests/security/CWE-502/options.yml @@ -0,0 +1,10 @@ +qltest_cargo_check: true +qltest_dependencies: + - reqwest = { version = "0.12.9", features = ["blocking"] } + - serde = { version = "1", features = ["derive"] } + - serde_json = { version = "1" } + - bincode = { version = "1" } + - rmp-serde = { version = "1" } + - ciborium = { version = "0.2" } + - serde_yaml = { version = "0.9" } + - toml = { version = "0.8" } diff --git a/rust/tools/index-files.cmd b/rust/tools/index-files.cmd index 3991f30b62f8..3ac364743c45 100644 --- a/rust/tools/index-files.cmd +++ b/rust/tools/index-files.cmd @@ -1,5 +1,6 @@ @echo off -type NUL && "%CODEQL_EXTRACTOR_RUST_ROOT%\tools\%CODEQL_PLATFORM%\extractor" @"%1" +type NUL && "%CODEQL_EXTRACTOR_RUST_ROOT%\tools\%CODEQL_PLATFORM%\extractor" ^ + --file-list "%1" exit /b %ERRORLEVEL% diff --git a/rust/tools/index-files.sh b/rust/tools/index-files.sh index bb8d665adfcc..e3e16846855c 100755 --- a/rust/tools/index-files.sh +++ b/rust/tools/index-files.sh @@ -3,4 +3,5 @@ set -eu export RUST_BACKTRACE=1 -exec "$CODEQL_EXTRACTOR_RUST_ROOT/tools/$CODEQL_PLATFORM/extractor" @"$1" +exec "$CODEQL_EXTRACTOR_RUST_ROOT/tools/$CODEQL_PLATFORM/extractor" \ + --file-list "$1" diff --git a/shared/concepts/codeql/concepts/internal/SensitiveDataHeuristics.qll b/shared/concepts/codeql/concepts/internal/SensitiveDataHeuristics.qll index b2bda909e3ba..4a2b56af3ea4 100644 --- a/shared/concepts/codeql/concepts/internal/SensitiveDataHeuristics.qll +++ b/shared/concepts/codeql/concepts/internal/SensitiveDataHeuristics.qll @@ -57,7 +57,7 @@ module HeuristicNames { * or trusted data. */ string maybeSecret() { - result = "(?is).*((? Ast> { or n.isIn(ast) and always = true and - ( + exists(SuccessorType st | ast instanceof ReturnStmt and - c.getSuccessorType() instanceof ReturnSuccessor + st instanceof ReturnSuccessor or ast instanceof Throw and - c.getSuccessorType() instanceof ExceptionSuccessor + st instanceof ExceptionSuccessor or ast instanceof BreakStmt and - c.getSuccessorType() instanceof BreakSuccessor + st instanceof BreakSuccessor or ast instanceof ContinueStmt and - c.getSuccessorType() instanceof ContinueSuccessor + st instanceof ContinueSuccessor or ast instanceof GotoStmt and - c.getSuccessorType() instanceof GotoSuccessor - ) and - ( - not Input1::hasLabel(ast, _) and not c.hasLabel(_) + st instanceof GotoSuccessor + | + not Input1::hasLabel(ast, _) and + c = TSimpleAbruptCompletion(st) or exists(Input1::Label l | Input1::hasLabel(ast, l) and - c.hasLabel(l) + c = TLabeledAbruptCompletion(st, l) ) ) or @@ -1319,20 +1319,19 @@ module Make0 Ast> { n.(ExceptionalExitNodeImpl).getEnclosingCallable() = callable ) or - exists(LoopStmt loop | ast = pragma[only_bind_into](loop).getBody() | + exists(LoopStmt loop, SuccessorType st | ast = pragma[only_bind_into](loop).getBody() | ( - c.getSuccessorType() instanceof BreakSuccessor and + st instanceof BreakSuccessor and n.isAfter(loop) or - c.getSuccessorType() instanceof ContinueSuccessor and + st instanceof ContinueSuccessor and n.isAdditional(loop, loopHeaderTag()) ) and ( - not c.hasLabel(_) + c = TSimpleAbruptCompletion(st) or - exists(Input1::Label l | - c.hasLabel(l) and - (Input1::hasLabel(loop, l) or hasEnclosingLabel(loop, l)) + exists(Input1::Label l | c = TLabeledAbruptCompletion(st, l) | + Input1::hasLabel(loop, l) or hasEnclosingLabel(loop, l) ) ) ) diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index 196c984c9941..46b8479a3155 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 2.0.45 +version: 2.0.46-dev groups: shared library: true dependencies: diff --git a/shared/dataflow/codeql/dataflow/VariableCapture.qll b/shared/dataflow/codeql/dataflow/VariableCapture.qll index 4b07725cd681..b53db9159916 100644 --- a/shared/dataflow/codeql/dataflow/VariableCapture.qll +++ b/shared/dataflow/codeql/dataflow/VariableCapture.qll @@ -214,9 +214,11 @@ module Flow< final private class CfgBb = Cfg::BasicBlock; private class BasicBlock extends CfgBb { + /** Gets the callable enclosing this basic block. */ Callable getEnclosingCallable() { result = basicBlockGetEnclosingCallable(this) } } + /** Provides consistency checks for an instantiation of the variable capture library. */ additional module ConsistencyChecks { final private class FinalExpr = Expr; @@ -250,6 +252,10 @@ module Flow< } } + /** + * Holds if `n` relevant elements have either no textual representation or multiple textual + * representations, as described by `msg`. + */ query predicate uniqueToString(string msg, int n) { exists(string elem | n = strictcount(RelevantBasicBlock bb | not exists(bb.toString())) and @@ -282,6 +288,9 @@ module Flow< ) } + /** + * Holds if `bb` does not have exactly one enclosing callable, as described by `msg`. + */ query predicate uniqueEnclosingCallable(RelevantBasicBlock bb, string msg) { msg = "BasicBlock has no enclosing callable" and not exists(bb.getEnclosingCallable()) or @@ -289,38 +298,62 @@ module Flow< 2 <= strictcount(bb.getEnclosingCallable()) } + /** + * Holds if `bb` has multiple immediate dominators, as described by `msg`. + */ query predicate uniqueDominator(RelevantBasicBlock bb, string msg) { msg = "BasicBlock has multiple immediate dominators" and 2 <= strictcount(bb.getImmediateDominator()) } + /** + * Holds if an immediate dominator of `bb` belongs to a different callable, as described by + * `msg`. + */ query predicate localDominator(RelevantBasicBlock bb, string msg) { msg = "BasicBlock has non-local dominator" and bb.getEnclosingCallable() != bb.getImmediateDominator().(BasicBlock).getEnclosingCallable() } + /** + * Holds if a successor of `bb` belongs to a different callable, as described by `msg`. + */ query predicate localSuccessor(RelevantBasicBlock bb, string msg) { msg = "BasicBlock has non-local successor" and bb.getEnclosingCallable() != bb.getASuccessor().(BasicBlock).getEnclosingCallable() } + /** + * Holds if captured variable `v` does not have exactly one defining callable, as described by + * `msg`. + */ query predicate uniqueDefiningScope(CapturedVariable v, string msg) { msg = "CapturedVariable has no defining callable" and not exists(v.getCallable()) or msg = "CapturedVariable has multiple defining callables" and 2 <= strictcount(v.getCallable()) } + /** + * Holds if `v` is classified as a captured variable but has no access from a capturing + * callable, as described by `msg`. + */ query predicate variableIsCaptured(CapturedVariable v, string msg) { msg = "CapturedVariable is not captured" and not captureAccess(v, _) } + /** + * Holds if relevant expression `e` does not have exactly one location, as described by `msg`. + */ query predicate uniqueLocation(RelevantExpr e, string msg) { msg = "Expr has no location" and not exists(e.getLocation()) or msg = "Expr has multiple locations" and 2 <= strictcount(e.getLocation()) } + /** + * Holds if relevant expression `e` does not have exactly one CFG node, as described by `msg`. + */ query predicate uniqueCfgNode(RelevantExpr e, string msg) { msg = "Expr has no cfg node" and not e.hasCfgNode(_, _) or @@ -334,6 +367,10 @@ module Flow< msg = "VariableWrite has multiple target variables" and 2 <= strictcount(vw.getVariable()) } + /** + * Holds if a captured-variable write does not have exactly one target variable, as described + * by `msg`. + */ query predicate uniqueWriteTarget(string msg) { uniqueWriteTarget(_, msg) } private predicate uniqueWriteCfgNode(VariableWrite vw, string msg) { @@ -343,18 +380,33 @@ module Flow< 2 <= strictcount(BasicBlock bb, int i | vw.hasCfgNode(bb, i)) } + /** + * Holds if a captured-variable write does not have exactly one CFG node, as described by + * `msg`. + */ query predicate uniqueWriteCfgNode(string msg) { uniqueWriteCfgNode(_, msg) } + /** + * Holds if variable read `vr` does not have exactly one source variable, as described by + * `msg`. + */ query predicate uniqueReadVariable(VariableRead vr, string msg) { msg = "VariableRead has no source variable" and not exists(vr.getVariable()) or msg = "VariableRead has multiple source variables" and 2 <= strictcount(vr.getVariable()) } + /** + * Holds if closure expression `ce` has no callable body, as described by `msg`. + */ query predicate closureMustHaveBody(ClosureExpr ce, string msg) { msg = "ClosureExpr has no body" and not ce.hasBody(_) } + /** + * Holds if `access` is an alias of closure expression `ce` outside the lexical scope of `ce`, + * as described by `msg`. + */ query predicate closureAliasMustBeInSameScope(ClosureExpr ce, Expr access, string msg) { exists(BasicBlock bb1, BasicBlock bb2 | ce.hasAliasedAccess(access) and @@ -372,6 +424,10 @@ module Flow< ) } + /** + * Holds if callable `c` accesses captured variable `v` but is not lexically nested in the + * callable that defines `v`, as described by `msg`. + */ query predicate variableAccessAstNesting(CapturedVariable v, Callable c, string msg) { exists(BasicBlock bb, Callable parent | captureRead(v, bb, _, false, _) or captureWrite(v, bb, _, false, _) @@ -383,6 +439,9 @@ module Flow< ) } + /** + * Holds if relevant callable `c` does not have exactly one location, as described by `msg`. + */ query predicate uniqueCallableLocation(RelevantCallable c, string msg) { msg = "Callable has no location" and not exists(c.getLocation()) or @@ -391,6 +450,9 @@ module Flow< import SsaFlow::DfConsistency + /** + * Holds if `n` elements violate a variable capture consistency check, as described by `msg`. + */ query predicate consistencyOverview(string msg, int n) { uniqueToString(msg, n) or n = strictcount(BasicBlock bb | uniqueEnclosingCallable(bb, msg)) or @@ -799,6 +861,7 @@ module Flow< private class TSynthesizedCaptureNode = TSynthRead or TSynthThisQualifier or TSynthSsa; class SynthesizedCaptureNode extends ClosureNode, TSynthesizedCaptureNode { + /** Gets the basic block containing this synthesized capture node. */ BasicBlock getBasicBlock() { this = TSynthRead(_, result, _, _) or @@ -821,6 +884,9 @@ module Flow< exists(SsaFlow::SsaNode n | this = TSynthSsa(n) and n.getSourceVariable() = TThis(_)) } + /** + * Holds if this is the synthesized capture node at index `i` in basic block `bb`. + */ predicate hasCfgNode(BasicBlock bb, int i) { this = TSynthRead(_, bb, i, _) or diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index dfe630d6c7c0..3f53049acb71 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 2.1.17 +version: 2.1.18-dev groups: shared library: true dependencies: diff --git a/shared/mad/codeql/mad/ModelValidation.qll b/shared/mad/codeql/mad/ModelValidation.qll index 47a3c24adce1..a5e64c434992 100644 --- a/shared/mad/codeql/mad/ModelValidation.qll +++ b/shared/mad/codeql/mad/ModelValidation.qll @@ -126,7 +126,7 @@ module KindValidation { [ // shared "local", "remote", "file", "commandargs", "database", "environment", "reverse-dns", - "stdin", + "stdin", "ai", // Java "android-external-storage-dir", "contentprovider", // C# diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index 343a2fd57669..6c520e798a30 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 1.0.61 +version: 1.0.62-dev groups: shared library: true dependencies: diff --git a/shared/namebinding/qlpack.yml b/shared/namebinding/qlpack.yml index 8e609e2338e2..57c8949a3844 100644 --- a/shared/namebinding/qlpack.yml +++ b/shared/namebinding/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/namebinding -version: 0.0.10 +version: 0.0.11-dev groups: shared library: true dependencies: diff --git a/shared/quantum/qlpack.yml b/shared/quantum/qlpack.yml index 3a083d4a50d8..c1c0fd3b27ea 100644 --- a/shared/quantum/qlpack.yml +++ b/shared/quantum/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/quantum -version: 0.0.39 +version: 0.0.40-dev groups: shared library: true dependencies: diff --git a/shared/rangeanalysis/qlpack.yml b/shared/rangeanalysis/qlpack.yml index 363a379eecf5..bbc89be8c352 100644 --- a/shared/rangeanalysis/qlpack.yml +++ b/shared/rangeanalysis/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rangeanalysis -version: 1.0.61 +version: 1.0.62-dev groups: shared library: true dependencies: diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index 6c45a302ec72..c44ae6403ecc 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 1.0.61 +version: 1.0.62-dev groups: shared library: true dependencies: diff --git a/shared/ssa/codeql/ssa/Ssa.qll b/shared/ssa/codeql/ssa/Ssa.qll index 6cc685f8ef8b..9680480b7472 100644 --- a/shared/ssa/codeql/ssa/Ssa.qll +++ b/shared/ssa/codeql/ssa/Ssa.qll @@ -38,8 +38,28 @@ signature module InputSig { * Examples of uncertain reads are pseudo-reads inserted at the end of a C# method * with a `ref` or `out` parameter, where it is the caller that may or may not read * the argument. + * + * Uncertain reads are skipped in the use-use relations and in the data flow + * integration. */ predicate variableRead(BasicBlock bb, int i, SourceVariable v, boolean certain); + + /** + * Holds if the `i1`th node of basic block `bb1` reads source variable `v` + * and this read has an associated post-update that occurs at the `i2`th node + * of basic block `bb2`. + * + * If left empty, post-updates are considered to occur at the same control + * flow node as the read. + * + * If specified for only some reads, the remaining reads are assumed to not + * have post-updates. + */ + default predicate variableReadWithPostUpdate( + BasicBlock bb1, int i1, SourceVariable v, BasicBlock bb2, int i2 + ) { + none() + } } /** @@ -332,6 +352,10 @@ module Make< } } + private predicate postUpdate(BasicBlock bb, int i, SourceVariable v) { + variableReadWithPostUpdate(_, _, v, bb, i) + } + /** * Liveness analysis (based on source variables) to restrict the size of the * SSA representation. @@ -436,8 +460,7 @@ module Make< pragma[nomagic] private predicate inReadDominanceFrontier(BasicBlock bb, SourceVariable v) { exists(BasicBlock readbb | readbb.inDominanceFrontier(bb) | - ssaDefReachesRead(v, _, readbb, _) and - variableRead(readbb, _, v, true) and + (variableRead(readbb, _, v, true) or postUpdate(readbb, _, v)) and not variableWrite(readbb, _, v, _) or synthPhiRead(readbb, v) and @@ -484,7 +507,7 @@ module Make< * associated with uncertain writes. */ pragma[nomagic] - predicate ssaRef(BasicBlock bb, int i, SourceVariable v, RefKind k) { + private predicate ssaRef(BasicBlock bb, int i, SourceVariable v, RefKind k) { variableRead(bb, i, v, _) and k = Read() or @@ -501,7 +524,7 @@ module Make< * Holds if the SSA definition `def` reaches rank index `rnk` in its own * basic block `bb`. */ - predicate ssaDefReachesRank(BasicBlock bb, Definition def, int rnk, SourceVariable v) { + private predicate ssaDefReachesRank(BasicBlock bb, Definition def, int rnk, SourceVariable v) { exists(int i | rnk = refRank(bb, i, v, Def()) and def.definesAt(v, bb, i) @@ -590,10 +613,13 @@ module Make< * reads. */ pragma[nomagic] - predicate ssaRef(BasicBlock bb, int i, SourceVariable v, RefKind k) { + private predicate ssaRef(BasicBlock bb, int i, SourceVariable v, RefKind k) { variableRead(bb, i, v, true) and k = Read() or + postUpdate(bb, i, v) and + k = Read() + or variableWrite(bb, i, v, false) and k = Read() or @@ -628,6 +654,12 @@ module Make< ) } + private predicate justPostUpdate(BasicBlock bb, int i, SourceVariable v) { + postUpdate(bb, i, v) and + not variableRead(bb, i, v, true) and + not variableWrite(bb, i, v, _) + } + /** * Holds if `v` has adjacent references at index `i1` in basic block `bb1` * and index `i2` in basic block `bb2`, that is, there is a path between @@ -649,6 +681,33 @@ module Make< 1 = refRank(bb2, i2, v, Read()) } + private predicate closestPriorNonPostUpdateRef( + BasicBlock bb1, int i1, BasicBlock bb2, int i2, SourceVariable v + ) { + exists(RefKind k | + ssaRef(bb1, i1, v, k) and + bb1 = bb2 and + i1 = i2 + | + k = Def() or not justPostUpdate(bb1, i1, v) + ) + or + exists(BasicBlock bb0, int i0 | + closestPriorNonPostUpdateRef(bb1, i1, bb0, i0, v) and + justPostUpdate(bb2, i2, v) and + adjacentRefRead(bb0, i0, bb2, i2, v) + ) + } + + predicate adjacentRefReadSkipPostUpd( + BasicBlock bb1, int i1, BasicBlock bb2, int i2, SourceVariable v + ) { + exists(BasicBlock bb0, int i0 | + adjacentRefRead(bb0, i0, bb2, i2, v) and + closestPriorNonPostUpdateRef(bb1, i1, bb0, i0, v) + ) + } + /** * Holds if the phi node or phi-read for `v` in basic block `bbPhi` takes * input from basic block `input`, and that the reference to `v` at index @@ -663,10 +722,19 @@ module Make< 1 = refRank(bbPhi, -1, v, _) } + predicate adjacentRefPhiSkipPostUpd( + BasicBlock bb, int i, BasicBlock input, BasicBlock bbPhi, SourceVariable v + ) { + exists(BasicBlock bb0, int i0 | + adjacentRefPhi(bb0, i0, input, bbPhi, v) and + closestPriorNonPostUpdateRef(bb, i, bb0, i0, v) + ) + } + private predicate adjacentRefs(BasicBlock bb1, int i1, BasicBlock bb2, int i2, SourceVariable v) { - adjacentRefRead(bb1, i1, bb2, i2, v) + adjacentRefReadSkipPostUpd(bb1, i1, bb2, i2, v) or - adjacentRefPhi(bb1, i1, _, bb2, v) and i2 = -1 + adjacentRefPhiSkipPostUpd(bb1, i1, _, bb2, v) and i2 = -1 } /** @@ -1290,7 +1358,7 @@ module Make< /** Holds if a certain read does not have a prior reference. */ query predicate readWithoutPriorRef(SourceVariable v, BasicBlock bb, int i) { variableRead(bb, i, v, true) and - not AdjacentSsaRefs::adjacentRefRead(_, _, bb, i, v) + not AdjacentSsaRefs::adjacentRefReadSkipPostUpd(_, _, bb, i, v) } /** @@ -1310,7 +1378,8 @@ module Make< PhiNode phi, BasicBlock bbPhi, SourceVariable v, int inputRefs ) { phi.definesAt(v, bbPhi, _) and - inputRefs = count(BasicBlock bb, int i | AdjacentSsaRefs::adjacentRefPhi(bb, i, _, bbPhi, v)) and + inputRefs = + count(BasicBlock bb, int i | AdjacentSsaRefs::adjacentRefPhiSkipPostUpd(bb, i, _, bbPhi, v)) and inputRefs < 2 } @@ -1324,6 +1393,15 @@ module Make< inputRefs < 2 } + /** + * Holds if the supposed read at `bb` and `i` has a post-update, but no + * actual certain read. + */ + query predicate postUpdateWithoutRead(SourceVariable v, BasicBlock bb, int i) { + variableReadWithPostUpdate(bb, i, v, _, _) and + not variableRead(bb, i, v, true) + } + /** * Gets counts of inconsistencies of each type. */ @@ -1331,49 +1409,54 @@ module Make< // total results from all the SSA consistency query predicates. type = "Read can be reached from multiple definitions" and result = - count(Definition def, SourceVariable v, BasicBlock bb, int i | nonUniqueDef(def, v, bb, i)) + strictcount(Definition def, SourceVariable v, BasicBlock bb, int i | + nonUniqueDef(def, v, bb, i) + ) or type = "Read cannot be reached from a definition" and - result = count(SourceVariable v, BasicBlock bb, int i | readWithoutDef(v, bb, i)) + result = strictcount(SourceVariable v, BasicBlock bb, int i | readWithoutDef(v, bb, i)) or type = "Definition cannot reach a read" and - result = count(Definition def, SourceVariable v | deadDef(def, v)) + result = strictcount(Definition def, SourceVariable v | deadDef(def, v)) or type = "Read is not dominated by a definition" and result = - count(Definition def, SourceVariable v, BasicBlock bb, int i | + strictcount(Definition def, SourceVariable v, BasicBlock bb, int i | notDominatedByDef(def, v, bb, i) ) or type = "End of a basic block can be reached by multiple definitions" and result = - count(Definition def, SourceVariable v, BasicBlock bb | + strictcount(Definition def, SourceVariable v, BasicBlock bb | nonUniqueDefReachesEndOfBlock(def, v, bb) ) or type = "Phi node has less than two inputs" and - result = count(PhiNode phi, int inputs | uselessPhiNode(phi, inputs)) + result = strictcount(PhiNode phi, int inputs | uselessPhiNode(phi, inputs)) or type = "Read does not have a prior reference" and - result = count(SourceVariable v, BasicBlock bb, int i | readWithoutPriorRef(v, bb, i)) + result = strictcount(SourceVariable v, BasicBlock bb, int i | readWithoutPriorRef(v, bb, i)) or type = "Read has multiple prior references" and result = - count(SourceVariable v, BasicBlock bb1, int i1, BasicBlock bb2, int i2 | + strictcount(SourceVariable v, BasicBlock bb1, int i1, BasicBlock bb2, int i2 | readWithMultiplePriorRefs(v, bb1, i1, bb2, i2) ) or type = "Phi has less than 2 immediately prior references" and result = - count(PhiNode phi, BasicBlock bbPhi, SourceVariable v, int inputRefs | + strictcount(PhiNode phi, BasicBlock bbPhi, SourceVariable v, int inputRefs | phiWithoutTwoPriorRefs(phi, bbPhi, v, inputRefs) ) or type = "Phi read has less than 2 immediately prior references" and result = - count(BasicBlock bbPhi, SourceVariable v, int inputRefs | + strictcount(BasicBlock bbPhi, SourceVariable v, int inputRefs | phiReadWithoutTwoPriorRefs(bbPhi, v, inputRefs) ) + or + type = "Post-update without read" and + result = strictcount(SourceVariable v, BasicBlock bb, int i | postUpdateWithoutRead(v, bb, i)) } } @@ -1419,22 +1502,6 @@ module Make< */ default predicate allowFlowIntoUncertainDef(UncertainWriteDefinition def) { none() } - /** - * Holds if the post-update node corresponding to the given `read` occurs at `bb,i`, meaning - * it will propagate to the next use (strictly) after that point in the CFG. - * - * The default is to use the CFG node associated with the read itself, meaning the post-update - * always flows to the next use. The default can however lead to spurious flow in cases like: - * ``` - * x.f = foo(x) - * ``` - * where the post-update node for `x` on the left-hand side flows into the `x` on the right-hand side. - * - * NOTE: When implementing this predicate, you must ensure that `variableRead` is defined to contain - * a synthetic read of this variable at `bb,i`. - */ - default predicate postUpdateCfgNode(Expr read, BasicBlock bb, int i) { read.hasCfgNode(bb, i) } - /** An abstract value that a `Guard` may evaluate to. */ class GuardValue { /** Gets a textual representation of this value. */ @@ -1570,7 +1637,8 @@ module Make< private predicate phiInputIsGuardEquivalentWithPreviousRef(SsaPhiExt phi, BasicBlock input) { exists(BasicBlock prev | phiInputHasRead(phi, input) and - AdjacentSsaRefs::adjacentRefPhi(prev, _, input, phi.getBasicBlock(), phi.getSourceVariable()) and + AdjacentSsaRefs::adjacentRefPhiSkipPostUpd(prev, _, input, phi.getBasicBlock(), + phi.getSourceVariable()) and prev = getGuardEquivalentImmediateDominator*(input) ) } @@ -1612,7 +1680,7 @@ module Make< // An equivalent, but less performant, way to express this is as follows: // ``` // exists(BasicBlock prev | - // AdjacentSsaRefs::adjacentRefPhi(prev, _, input, phi.getBasicBlock(), + // AdjacentSsaRefs::adjacentRefPhiSkipPostUpd(prev, _, input, phi.getBasicBlock(), // phi.getSourceVariable()) and // prev != input and // exists(DfInput::Guard g, DfInput::GuardValue val | @@ -1634,7 +1702,7 @@ module Make< ) { exists(BasicBlock bb1, int i, SourceVariable v, BasicBlock bb2 | phi.definesAt(pragma[only_bind_into](v), bb1, i) and - AdjacentSsaRefs::adjacentRefPhi(bb1, i, input, bb2, v) and + AdjacentSsaRefs::adjacentRefPhiSkipPostUpd(bb1, i, input, bb2, v) and phi2.definesAt(pragma[only_bind_into](v), bb2, _) and if relevantPhiInputNode(phi2, input) then relevant = true else relevant = false ) @@ -1648,7 +1716,7 @@ module Make< private predicate phiStepsToRef(SsaPhiExt phi, BasicBlock bb, int i, boolean isUse) { exists(SourceVariable v, BasicBlock bb1, int i1 | phi.definesAt(v, bb1, i1) and - AdjacentSsaRefs::adjacentRefRead(bb1, i1, bb, i, v) + AdjacentSsaRefs::adjacentRefReadSkipPostUpd(bb1, i1, bb, i, v) | isUse = true and variableRead(bb, i, v, true) @@ -1680,14 +1748,22 @@ module Make< cached private newtype TNode = TWriteDefSource(WriteDefinition def) { DfInput::ssaDefHasSource(def) } or - TExprNode(DfInput::Expr e, SourceVariable v, Boolean isPost) { - exists(BasicBlock bb, int i | - e.hasCfgNode(bb, i) and + TExprNode(DfInput::Expr e, SourceVariable v, boolean isPost) { + exists(BasicBlock bb, int i | e.hasCfgNode(bb, i) | variableRead(bb, i, v, true) and + isPost = false and // Only materialise if 'expr' has a reaching definition. // Note that the read may correspond to a different variable than 'v', but the C++ // instantiation currently expects this particular behaviour. DfInput::getARead(_) = e + or + not postUpdate(_, _, _) and + variableRead(bb, i, v, true) and + isPost = true and + DfInput::getARead(_) = e + or + postUpdate(bb, i, v) and + isPost = true ) } or TSsaDefinitionNode(DefinitionExt def) { @@ -1776,7 +1852,17 @@ module Make< ExprPostUpdateNodeImpl() { isPost = true } /** Gets the pre-update expression node. */ - ExprNode getPreUpdateNode() { result = TExprNode(e, v_, false) } + ExprNode getPreUpdateNode() { + not postUpdate(_, _, _) and + result = TExprNode(e, v_, false) + or + exists(DfInput::Expr e1, BasicBlock bb1, int i1, BasicBlock bb2, int i2 | + result = TExprNode(e1, v_, false) and + e1.hasCfgNode(bb1, i1) and + variableReadWithPostUpdate(bb1, i1, v_, bb2, i2) and + e.hasCfgNode(bb2, i2) + ) + } override string toString() { result = e.toString() + " [postupdate]" } } @@ -1787,7 +1873,6 @@ module Make< private predicate exprReadAt( DfInput::Expr e, BasicBlock bb, int i, SourceVariable v, boolean isPost, TExprNode node ) { - variableRead(bb, i, v, true) and e.hasCfgNode(bb, i) and node = TExprNode(e, v, isPost) } @@ -1926,13 +2011,6 @@ module Make< override string toString() { result = "[input] " + def_.toString() } } - private predicate postUpdateNodeAt( - ExprPostUpdateNode node, BasicBlock bb, int i, SourceVariable v - ) { - node.getPreUpdateNode().(ReadNode).readsAt(_, _, v) and - DfInput::postUpdateCfgNode(node.getExpr(), bb, i) - } - /** * Holds if `nodeFrom` corresponds to the reference to `v` at index `i` in * `bb`. The boolean `isUseStep` indicates whether `nodeFrom` is an actual @@ -1948,10 +2026,8 @@ module Make< isUseStep = false ) or - nodeFrom.(ReadNode).readsAt(bb, i, v) and - isUseStep = true - or - postUpdateNodeAt(nodeFrom, bb, i, v) and + exprReadAt(_, bb, i, v, _, nodeFrom) and + not variableWrite(bb, i, v, true) and isUseStep = true } @@ -1972,6 +2048,15 @@ module Make< ) ) or + // Flow from definition/read via post-update node + exists(BasicBlock bb2, int i2 | + AdjacentSsaRefs::adjacentRefRead(bb1, i1, bb2, i2, v) and + postUpdate(bb2, i2, v) and + not any(ReadNode r).readsAt(bb2, i2, v) and + not any(UncertainWriteDefinition def2).definesAt(v, bb2, i2) and + flowFromRefToNode(v, bb2, i2, nodeTo) + ) + or // Flow from definition/read to phi input exists(BasicBlock input, BasicBlock bbPhi, DefinitionExt phi | AdjacentSsaRefs::adjacentRefPhi(bb1, i1, input, bbPhi, v) and @@ -2182,6 +2267,7 @@ module Make< module TestAdjacentRefs { private newtype TRef = TRefRead(BasicBlock bb, int i, SourceVariable v) { variableRead(bb, i, v, true) } or + TRefPostUpdate(BasicBlock bb, int i, SourceVariable v) { postUpdate(bb, i, v) } or TRefDef(Definition def) or TRefPhiRead(BasicBlock bb, SourceVariable v) { synthPhiRead(bb, v) } @@ -2194,6 +2280,8 @@ module Make< SourceVariable getSourceVariable() { this = TRefRead(_, _, result) or + this = TRefPostUpdate(_, _, result) + or exists(Definition def | this = TRefDef(def) and def.getSourceVariable() = result) or this = TRefPhiRead(_, result) @@ -2206,6 +2294,9 @@ module Make< string toString() { this = TRefRead(_, _, _) and result = "SSA read(" + this.getSourceVariable() + ")" or + this = TRefPostUpdate(_, _, _) and + result = "SSA post update(" + this.getSourceVariable() + ")" + or exists(Definition def | this = TRefDef(def) and result = def.toString()) or this = TRefPhiRead(_, _) and result = "SSA phi read(" + this.getSourceVariable() + ")" @@ -2213,8 +2304,8 @@ module Make< /** Gets the location of this SSA reference. */ Location getLocation() { - exists(BasicBlock bb, int i | - this = TRefRead(bb, i, _) and bb.getNode(i).getLocation() = result + exists(BasicBlock bb, int i | this = TRefRead(bb, i, _) or this = TRefPostUpdate(bb, i, _) | + bb.getNode(i).getLocation() = result ) or exists(Definition def | this = TRefDef(def) and def.getLocation() = result) @@ -2226,6 +2317,8 @@ module Make< predicate accessAt(BasicBlock bb, int i, SourceVariable v) { this = TRefRead(bb, i, v) or + this = TRefPostUpdate(bb, i, v) + or exists(Definition def | this = TRefDef(def) and def.definesAt(v, bb, i)) or this = TRefPhiRead(bb, v) and i = -1 diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index ceed98356af0..5acf787b4f61 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 2.0.37 +version: 2.0.38-dev groups: shared library: true dependencies: diff --git a/shared/threat-models/qlpack.yml b/shared/threat-models/qlpack.yml index 260cae1e2db3..23ea2cf9c981 100644 --- a/shared/threat-models/qlpack.yml +++ b/shared/threat-models/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/threat-models -version: 1.1.1 +version: 1.1.2-dev library: true groups: shared dataExtensions: diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index 1afd78944704..5a21ea2df9d5 100644 --- a/shared/tutorial/qlpack.yml +++ b/shared/tutorial/qlpack.yml @@ -1,7 +1,7 @@ name: codeql/tutorial description: Library for the CodeQL detective tutorials, helping new users learn to write CodeQL queries. -version: 1.0.61 +version: 1.0.62-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typeflow/qlpack.yml b/shared/typeflow/qlpack.yml index d97039604482..d79277b95bc7 100644 --- a/shared/typeflow/qlpack.yml +++ b/shared/typeflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeflow -version: 1.0.61 +version: 1.0.62-dev groups: shared library: true dependencies: diff --git a/shared/typeinference/qlpack.yml b/shared/typeinference/qlpack.yml index 4054b7efbc34..a55e1243d3d8 100644 --- a/shared/typeinference/qlpack.yml +++ b/shared/typeinference/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeinference -version: 0.0.42 +version: 0.0.43-dev groups: shared library: true dependencies: diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index 8265f94f474d..087ce38451d1 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 2.0.45 +version: 2.0.46-dev groups: shared library: true dependencies: diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index 43151c059153..e27e5c427266 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 1.0.61 +version: 1.0.62-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index cc51f4991921..8e1207a4eea1 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 2.0.48 +version: 2.0.49-dev groups: shared library: true dependencies: null diff --git a/shared/xml/qlpack.yml b/shared/xml/qlpack.yml index 7f722a09a9d8..b0038ec2ddb1 100644 --- a/shared/xml/qlpack.yml +++ b/shared/xml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/xml -version: 1.0.61 +version: 1.0.62-dev groups: shared library: true dependencies: diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index e34a474c6006..51f5bcb56685 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 1.0.61 +version: 1.0.62-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/yeast-macros/BUILD.bazel b/shared/yeast-macros/BUILD.bazel index 71bc6eb288ad..855e3962e0cc 100644 --- a/shared/yeast-macros/BUILD.bazel +++ b/shared/yeast-macros/BUILD.bazel @@ -8,5 +8,7 @@ rust_proc_macro( srcs = glob(["src/**/*.rs"]), aliases = aliases(), visibility = ["//visibility:public"], - deps = all_crate_deps(), + deps = all_crate_deps() + [ + "//shared/yeast-schema", + ], ) diff --git a/shared/yeast-macros/Cargo.toml b/shared/yeast-macros/Cargo.toml index d8ea435093e4..1d038714bda7 100644 --- a/shared/yeast-macros/Cargo.toml +++ b/shared/yeast-macros/Cargo.toml @@ -10,3 +10,4 @@ proc-macro = true proc-macro2 = "1.0" quote = "1.0" syn = { version = "3.0", features = ["full"] } +yeast-schema = { path = "../yeast-schema" } diff --git a/shared/yeast-macros/src/ast.rs b/shared/yeast-macros/src/ast.rs index f400257fd1d4..f534fe4d83a7 100644 --- a/shared/yeast-macros/src/ast.rs +++ b/shared/yeast-macros/src/ast.rs @@ -1,3 +1,5 @@ +use std::collections::BTreeSet; + use proc_macro2::{Ident, Literal}; /// A complete rewrite rule such as `(input) where guard => (output)`. @@ -100,6 +102,15 @@ pub(crate) enum Template { Node(Node), /// An embedded Rust block such as `{args}`. Splice(syn::Block), + /// Ordered alternatives such as `[(identifier #{name}) (missing)]`. + Choice(Vec), +} + +pub(crate) struct Alternative { + /// Template to construct when the guard and dependencies succeed. + pub(crate) template: Template, + /// Optional postfix guard such as `if { name.is_some() }`. + pub(crate) guard: Option, } pub(crate) struct Node { @@ -117,23 +128,139 @@ pub(crate) enum Content { Static(Literal), /// Computed leaf content such as `#{name}` in `(identifier #{name})`. Computed(syn::Block), + /// Value inherited from the node matched by the enclosing rule. + Inherited, } pub(crate) enum Field { /// A named field such as `argument: {args}` or - /// `label: (identifier #{name})?`. + /// `label: (identifier #{name})`. Named { /// The field name before `:`, such as `argument`. name: Ident, /// The node or Rust splice after `:`, such as `(identifier "x")` or /// `{args}`. value: Template, - /// Whether the field value has a trailing `?`. - optional: bool, }, /// Source-location metadata such as `location: {source}`. Location { /// A Rust block yielding the node or nodes whose locations should be combined. block: syn::Block, }, + /// Explicitly omit source-location metadata: `location: none`. + LocationNone, +} + +impl Rule { + pub(crate) fn resolve_bare_leaf_content( + &mut self, + leaf_kinds: &BTreeSet, + ) -> syn::Result<()> { + let Replacement::Templates(templates) = &mut self.replacement else { + return Ok(()); + }; + for template in templates { + template.resolve_bare_leaf_content(leaf_kinds, true)?; + } + Ok(()) + } +} + +impl Template { + fn resolve_bare_leaf_content( + &mut self, + leaf_kinds: &BTreeSet, + is_rule_result: bool, + ) -> syn::Result<()> { + let Template::Node(node) = self else { + return Ok(()); + }; + + for field in &mut node.fields { + if let Field::Named { value, .. } = field { + value.resolve_bare_leaf_content(leaf_kinds, false)?; + } + } + + if node.content.is_none() + && node.fields.is_empty() + && leaf_kinds.contains(node.kind.to_string().as_str()) + { + if !is_rule_result { + return Err(syn::Error::new_spanned( + &node.kind, + format!( + "bare leaf `{}` must be a top-level rule result or have explicit content", + node.kind + ), + )); + } + node.content = Some(Content::Inherited); + } + + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use quote::quote; + + fn output_leaf_kinds() -> BTreeSet { + yeast_schema::node_types_yaml::leaf_kinds_from_yaml( + r#" +named: + assignment: + left: identifier + identifier: +"#, + ) + .unwrap() + } + + #[test] + fn marks_top_level_bare_leaves_as_inherited() { + let mut rule = crate::rule_parse::parse_rule(quote!((source) => (identifier))).unwrap(); + rule.resolve_bare_leaf_content(&output_leaf_kinds()) + .unwrap(); + + let Replacement::Templates(templates) = rule.replacement else { + panic!("expected template replacement"); + }; + let [Template::Node(node)] = templates.as_slice() else { + panic!("expected one output node"); + }; + assert!(matches!(node.content, Some(Content::Inherited))); + } + + #[test] + fn rejects_nested_bare_leaves() { + let mut rule = + crate::rule_parse::parse_rule(quote!((source) => (assignment left: (identifier)))) + .unwrap(); + let error = rule + .resolve_bare_leaf_content(&output_leaf_kinds()) + .unwrap_err(); + + assert_eq!( + error.to_string(), + "bare leaf `identifier` must be a top-level rule result or have explicit content" + ); + } + + #[test] + fn leaves_fieldless_structural_nodes_unchanged() { + let mut rule = crate::rule_parse::parse_rule(quote!((source) => (assignment))).unwrap(); + rule.resolve_bare_leaf_content(&output_leaf_kinds()) + .unwrap(); + + let Replacement::Templates(templates) = rule.replacement else { + panic!("expected template replacement"); + }; + let [Template::Node(node)] = templates.as_slice() else { + panic!("expected one output node"); + }; + assert!(node.content.is_none()); + } } diff --git a/shared/yeast-macros/src/lib.rs b/shared/yeast-macros/src/lib.rs index 7e7521a8b76f..868ebe15cdff 100644 --- a/shared/yeast-macros/src/lib.rs +++ b/shared/yeast-macros/src/lib.rs @@ -52,6 +52,8 @@ pub fn query(input: TokenStream) -> TokenStream { /// Build a single AST node from a template, returning its `OutputId`. /// +/// A top-level choice returns `Option`. +/// /// # Template syntax /// /// ```text @@ -63,36 +65,44 @@ pub fn query(input: TokenStream) -> TokenStream { /// `Option`, iterator chains) splice /// their elements /// field: {expr} - extend a named field with `{expr}`'s ids -/// field: (kind ...)? - set the field only if every `#{expr}` -/// beneath it has a value (see below) /// location: {expr} - override this node's source range with the /// span of one or more nodes; may be repeated +/// location: none - explicitly make this node locationless +/// field: [(kind ...)] - set the field only if the alternative can +/// be constructed (see below) +/// field: [(a) (b)] - use the first constructible alternative +/// field: [(a) if {guard} (b)] - skip an alternative when its guard is false /// ``` /// -/// # Optional fields +/// # Template choices /// -/// A `?` on a field's value makes that field fallible: if a `#{expr}` -/// anywhere beneath it interpolates an absent value — an `Option` that is -/// `None` — the subtree is abandoned and the field is left unset. This -/// replaces the surrounding `Option::map` that would otherwise be needed: +/// Brackets contain one or more ordered alternatives. For each alternative, +/// its optional `if {guard}` is evaluated first, followed by every `#{expr}` +/// dependency beneath it. An absent dependency — an `Option` that is `None` — +/// skips the alternative without constructing any of its template nodes. The +/// first alternative whose guard and dependencies succeed is constructed: /// /// ```text /// (break_expr label: {lbl.map(|l| tree!((identifier #{l})))}) // before -/// (break_expr label: (identifier #{lbl})?) // after +/// (break_expr label: [(identifier #{lbl})]) // after /// ``` /// -/// The value may be nested arbitrarily deeply, and a nested `?` catches -/// first, so an inner absent value need not discard the outer node: +/// Dependencies may be nested arbitrarily deeply. A nested choice handles its +/// own dependencies, so an inner absent value need not discard an outer node: /// /// ```text -/// (parameter pattern: (name_pattern identifier: (identifier #{name}))? type: {ty}) +/// (parameter pattern: [ +/// (name_pattern identifier: [(identifier #{name})]) +/// ] type: {ty}) /// ``` /// -/// Only `#{expr}` propagates absence. A `{expr}` splice is unaffected, since -/// yielding no ids already leaves a field unset, and `?` is rejected on one. -/// Outside a `?`, interpolating an `Option` with `#{expr}` remains a compile -/// error, so the choice between "unset the field" and "unwrap it" stays -/// explicit. +/// Only `#{expr}` is treated as a dependency. A `{expr}` splice is unaffected, +/// since yielding no ids already leaves its field unset. Outside a choice, +/// interpolating an `Option` with `#{expr}` remains a compile error. +/// +/// A choice used as a field or list item contributes zero or one node. A +/// top-level choice passed to `tree!` returns `Option`; ordinary +/// templates continue to return `OutputId`. /// /// Uses the `BuildCtx` binding named `ctx` from the surrounding scope: /// @@ -201,8 +211,18 @@ pub fn rule(input: TokenStream) -> TokenStream { /// Paths are resolved relative to the consuming crate's `CARGO_MANIFEST_DIR` /// (the same convention `include_str!` uses for relative paths). The /// resolved paths are also emitted as `include_str!` references so the -/// consuming crate gets invalidated when a schema YAML changes, prepping -/// the ground for compile-time type-checking against those schemas. +/// consuming crate gets invalidated when a schema YAML changes. +/// +/// A bare output leaf used as a top-level rule result inherits the matched +/// input node's value: +/// +/// ```text +/// rule!((superExpr) => (super_expr)) +/// ``` +/// +/// Whether the output kind is a leaf is determined from the output schema. +/// Nested bare leaves are rejected at compile time because they have no +/// unambiguous input node from which to inherit a value. #[proc_macro] pub fn rules(input: TokenStream) -> TokenStream { let input2: TokenStream2 = input.into(); diff --git a/shared/yeast-macros/src/lower.rs b/shared/yeast-macros/src/lower.rs index e127423910d5..dcb232a38052 100644 --- a/shared/yeast-macros/src/lower.rs +++ b/shared/yeast-macros/src/lower.rs @@ -1,19 +1,41 @@ use proc_macro2::{Ident, Span, TokenStream}; use quote::quote; +use std::cell::RefCell; use std::sync::atomic::{AtomicUsize, Ordering}; -use syn::Lifetime; -use crate::ast::{Cardinality, Content, Field, Node, Pattern, Replacement, Rule, Template}; +use crate::ast::{ + Alternative, Cardinality, Content, Field, Node, Pattern, Replacement, Rule, Template, +}; +#[derive(Clone, Copy, Default)] struct LoweringContext<'a> { - /// Enclosing optional-field label to exit when a computed value is absent. - fallible_scope: Option<&'a Lifetime>, + choice_alternative_scope: Option>, } -fn fresh_fallible_label() -> Lifetime { +#[derive(Clone, Copy)] +struct ChoiceAlternativeScope<'a> { + interpolations: &'a RefCell>, +} + +/// A `#{expr}` interpolation that must succeed before constructing a choice +/// alternative. Lowering first emits `expression`, which evaluates `expr` and +/// returns its rendered text and optional source range. A `None` result rejects +/// the alternative without constructing any nodes. On success, the generated +/// bindings are reused later when constructing the interpolated leaf. +struct GuardingInterpolation { + /// Generated binding for the interpolation's rendered text. + value: Ident, + /// Generated binding for the interpolation's optional source range. + source_range: Ident, + /// Generated `Option<(String, Option)>` expression that evaluates + /// the original interpolation exactly once. + expression: TokenStream, +} + +fn fresh_prepared_ident(suffix: &str) -> Ident { static COUNTER: AtomicUsize = AtomicUsize::new(0); let n = COUNTER.fetch_add(1, Ordering::Relaxed); - Lifetime::new(&format!("'__yeast_field_{n}"), Span::call_site()) + Ident::new(&format!("__yeast_prepared_{suffix}_{n}"), Span::call_site()) } #[derive(Clone)] @@ -286,20 +308,19 @@ fn capture_bindings<'a>( impl Template { pub(crate) fn lower_root(&self) -> TokenStream { - self.lower(&LoweringContext { - fallible_scope: None, - }) + match self { + Template::Choice(alternatives) => Self::lower_choice(alternatives), + _ => self.lower_single(LoweringContext::default()), + } } pub(crate) fn lower_list(templates: &[Self]) -> TokenStream { - let context = LoweringContext { - fallible_scope: None, - }; + let context = LoweringContext::default(); let items = templates .iter() .map(|template| match template { Template::Node(node) => { - let node = node.lower(&context); + let node = node.lower(context); quote! { __nodes.push(#node); } } Template::Splice(block) => { @@ -310,6 +331,14 @@ impl Template { ctx.extend_field_ids(__value, &mut __nodes); } } + Template::Choice(alternatives) => { + let pick = Self::lower_choice(alternatives); + quote! { + if let ::std::option::Option::Some(__id) = #pick { + __nodes.push(__id); + } + } + } }) .collect::>(); @@ -322,19 +351,101 @@ impl Template { } } - fn lower(&self, context: &LoweringContext<'_>) -> TokenStream { + fn lower_single(&self, context: LoweringContext<'_>) -> TokenStream { match self { Template::Node(node) => node.lower(context), Template::Splice(block) => { let block = rust_block(block); quote! { ::std::convert::Into::::into(#block) } } + Template::Choice(_) => { + unreachable!("choices are lowered through Template::lower_choice") + } + } + } + + fn lower_choice(alternatives: &[Alternative]) -> TokenStream { + let pick = alternatives.iter().rev().fold( + quote! { ::std::option::Option::None }, + |fallback, alternative| alternative.lower_candidate(fallback), + ); + quote! {{ #pick }} + } +} + +impl Alternative { + fn lower_candidate(&self, fallback: TokenStream) -> TokenStream { + let interpolations = RefCell::new(Vec::new()); + let context = LoweringContext { + choice_alternative_scope: Some(ChoiceAlternativeScope { + interpolations: &interpolations, + }), + }; + let value = self.template.lower_single(context); + let interpolations = interpolations.into_inner(); + let prepared_values = interpolations + .iter() + .flat_map(|interpolation| { + [ + interpolation.value.clone(), + interpolation.source_range.clone(), + ] + }) + .collect::>(); + let prepared = quote! { + ::std::option::Option::Some((#(#prepared_values),*)) + }; + + // Nest dependency matches around preparation in reverse, so they are + // evaluated in source order. Construction happens only after the + // resulting option has been matched, keeping it in a separate branch + // from the fallback. + let prepared = + interpolations + .into_iter() + .rev() + .fold(prepared, |candidate, interpolation| { + let GuardingInterpolation { + value, + source_range, + expression, + } = interpolation; + // Do not use `map`/`and_then` here: `candidate` may contain + // embedded user Rust, and putting it in a closure would change + // the target of `return` and the result type seen by `?`. + quote! { + match #expression { + ::std::option::Option::Some((#value, #source_range)) => #candidate, + ::std::option::Option::None => ::std::option::Option::None, + } + } + }); + let prepared = if let Some(guard) = &self.guard { + let guard = rust_block(guard); + quote! { + if #guard { + #prepared + } else { + ::std::option::Option::None + } + } + } else { + prepared + }; + + quote! { + match #prepared { + ::std::option::Option::Some((#(#prepared_values),*)) => { + ::std::option::Option::Some(#value) + } + ::std::option::Option::None => #fallback, + } } } } impl Node { - fn lower(&self, context: &LoweringContext<'_>) -> TokenStream { + fn lower(&self, context: LoweringContext<'_>) -> TokenStream { let ctx = Ident::new("ctx", Span::call_site()); let kind_str = self.kind.to_string(); @@ -343,25 +454,41 @@ impl Node { Content::Static(lit) => quote! { #ctx.literal(#kind_str, #lit) }, Content::Computed(block) => { let block = rust_block(block); - if let Some(label) = context.fallible_scope { + if let Some(scope) = context.choice_alternative_scope { + let value = fresh_prepared_ident("value"); + let source_range = fresh_prepared_ident("source_range"); + scope + .interpolations + .borrow_mut() + .push(GuardingInterpolation { + value: value.clone(), + source_range: source_range.clone(), + expression: quote! { + { + let __expr = #block; + yeast::MaybeYeastValue::maybe_yeast_value(&__expr).map( + |__value_ref| { + ( + yeast::YeastDisplay::yeast_to_string( + __value_ref, + &#ctx, + ), + yeast::YeastSourceRange::yeast_source_range( + __value_ref, + &#ctx, + ), + ) + }, + ) + } + }, + }); quote! { - { - let __expr = #block; - let ::std::option::Option::Some(__value_ref) = - yeast::MaybeYeastValue::maybe_yeast_value(&__expr) - else { - break #label ::std::option::Option::None; - }; - let __value = - yeast::YeastDisplay::yeast_to_string(__value_ref, &#ctx); - let __source_range = - yeast::YeastSourceRange::yeast_source_range(__value_ref, &#ctx); - #ctx.literal_with_source_range( - #kind_str, - &__value, - __source_range, - ) - } + #ctx.literal_with_source_range( + #kind_str, + &#value, + #source_range, + ) } } else { quote! { @@ -380,6 +507,7 @@ impl Node { } } } + Content::Inherited => quote! { #ctx.inherited_literal(#kind_str) }, }; quote! { let __node: yeast::OutputId = #node; } } else { @@ -388,6 +516,10 @@ impl Node { let mut stmts = Vec::new(); let mut field_args = Vec::new(); + let location_none = self + .fields + .iter() + .any(|field| matches!(field, Field::LocationNone)); for (field_counter, field) in self.fields.iter().enumerate() { match field { @@ -399,11 +531,8 @@ impl Node { #ctx.extend_location_ranges(__value, &mut __location_ranges); }); } - Field::Named { - name, - value, - optional, - } => { + Field::LocationNone => {} + Field::Named { name, value } => { let field_name = name.to_string(); let field_str = field_name .strip_prefix("r#") @@ -413,10 +542,8 @@ impl Node { &format!("__field_{field_str}_{field_counter}"), Span::call_site(), ); - match value { Template::Splice(block) => { - debug_assert!(!optional); let block = rust_block(block); stmts.push(quote! { let mut #temp: Vec = Vec::new(); @@ -430,16 +557,10 @@ impl Node { } }); } - Template::Node(child) if *optional => { - let label = fresh_fallible_label(); - let value = child.lower(&LoweringContext { - fallible_scope: Some(&label), - }); + Template::Choice(alternatives) => { + let pick = Template::lower_choice(alternatives); stmts.push(quote! { - #[allow(unused_labels)] - let #temp: ::std::option::Option = #label: { - ::std::option::Option::Some(#value) - }; + let #temp: ::std::option::Option = #pick; }); field_args.push(quote! { if let ::std::option::Option::Some(__id) = #temp { @@ -475,8 +596,13 @@ impl Node { #node_init #(#stmts)* #build_node - let __source_range = __location_ranges.into_iter().reduce(yeast::Range::union); - #ctx.set_node_source_range(__node, __source_range) + if #location_none { + #ctx.set_node_locationless(__node) + } else { + let __source_range = + __location_ranges.into_iter().reduce(yeast::Range::union); + #ctx.set_node_source_range(__node, __source_range) + } } } } diff --git a/shared/yeast-macros/src/parse.rs b/shared/yeast-macros/src/parse.rs index becdd56831f7..ccc8b036ff4e 100644 --- a/shared/yeast-macros/src/parse.rs +++ b/shared/yeast-macros/src/parse.rs @@ -51,6 +51,25 @@ pub fn parse_rules_top(input: TokenStream) -> Result { }; let input_abs = resolve_path(&input_path.value); let output_abs = resolve_path(&output_path.value); + let output_yaml = std::fs::read_to_string(&output_abs).map_err(|error| { + syn::Error::new( + output_path.literal_span, + format!( + "rules!: failed to read output schema `{}`: {error}", + output_abs.display() + ), + ) + })?; + let output_leaf_kinds = yeast_schema::node_types_yaml::leaf_kinds_from_yaml(&output_yaml) + .map_err(|error| { + syn::Error::new( + output_path.literal_span, + format!( + "rules!: failed to parse output schema `{}`: {error}", + output_abs.display() + ), + ) + })?; let list = expect_group(&mut tokens, proc_macro2::Delimiter::Bracket)?; if let Some(token) = tokens.next() { @@ -63,8 +82,15 @@ pub fn parse_rules_top(input: TokenStream) -> Result { let emitted_items = split_top_level_commas(list.stream()) .into_iter() .map(|item| { - if has_top_level_arrow(&item) { - Ok(crate::rule_parse::parse_rule(item)?.lower()) + let rule_body = if has_top_level_arrow(&item) { + Some(item.clone()) + } else { + explicit_rule_body(&item) + }; + if let Some(rule_body) = rule_body { + let mut rule = crate::rule_parse::parse_rule(rule_body)?; + rule.resolve_bare_leaf_content(&output_leaf_kinds)?; + Ok(rule.lower()) } else { Ok(item) } @@ -84,6 +110,7 @@ pub fn parse_rules_top(input: TokenStream) -> Result { struct NamedString { value: String, + literal_span: Span, } fn parse_named_string_arg( @@ -109,7 +136,10 @@ fn parse_named_string_arg( format!("`{expected_name}` must be a string literal path"), ) })?; - Ok(NamedString { value }) + Ok(NamedString { + value, + literal_span: literal.span(), + }) } fn string_literal_value(literal: &proc_macro2::Literal) -> Option { @@ -152,6 +182,17 @@ fn has_top_level_arrow(stream: &TokenStream) -> bool { }) } +fn explicit_rule_body(stream: &TokenStream) -> Option { + let expression = syn::parse2::(stream.clone()).ok()?; + let is_rule = expression + .mac + .path + .segments + .last() + .is_some_and(|segment| segment.ident == "rule"); + is_rule.then_some(expression.mac.tokens) +} + type Tokens = std::iter::Peekable; fn expect_ident(tokens: &mut Tokens, message: &str) -> Result { @@ -212,4 +253,12 @@ mod tests { "e! { { match x { 1 => 2, _ => 3 } } } )); } + + #[test] + fn recognizes_explicit_rule_macros() { + assert!(explicit_rule_body("e! { rule!((a) => (b)) }).is_some()); + assert!(explicit_rule_body("e! { yeast::rule!((a) => (b)) }).is_some()); + assert!(explicit_rule_body("e! { other!((a) => (b)) }).is_none()); + assert!(explicit_rule_body("e! { make_rule() }).is_none()); + } } diff --git a/shared/yeast-macros/src/template_parse.rs b/shared/yeast-macros/src/template_parse.rs index 782407466a46..cce42fd0ab19 100644 --- a/shared/yeast-macros/src/template_parse.rs +++ b/shared/yeast-macros/src/template_parse.rs @@ -1,7 +1,7 @@ use proc_macro2::{Delimiter, Ident, Literal, Span, TokenStream, TokenTree}; use std::iter::Peekable; -use crate::ast::{Content, Field, Node, Template}; +use crate::ast::{Alternative, Content, Field, Node, Template}; type Tokens = Peekable; type Result = std::result::Result; @@ -9,7 +9,6 @@ type Result = std::result::Result; pub(crate) fn parse_template(input: TokenStream) -> Result